Bash

使用 sed 或 awk 在變數行中插入變數

  • November 17, 2018

我有兩個變數(txt 和行號)我想在 x 行中插入我的 txt

card=$(shuf -n1 shuffle.txt)
i=$(shuf -i1-52 -n1)

‘card’ 是我的 txt :隨機選擇的一張牌,在洗牌’deck’中隨機選擇,我想將它插入隨機行(i)

鑑於txt已分配給您要添加的文本,並且i已分配給要插入文本的行號,這將輸出所需的內容:

$ awk -v line="$i" -v text="$txt" '{print} NR==line{print text}' /path/to/textfile

稍作修改以添加text到指定的行號(除了已經存在的文本),而不是像上面的程式碼那樣將其添加到現有行之後i(單獨一行):

$ awk -v line="$i" -v text="$txt" ' NR!=line{print} NR==line{print $0 text}' /path/to/textfile

引用自:https://unix.stackexchange.com/questions/420519