[英]Bash: Find matching text and replace next line
警報:在stackoverflow上,我已經看到過這類問題。 我搜了很多。 已遵循解決方案,但無法解決問題。
我有一個變量$ NEW_FILE ,當您回顯$ NEW_FILE時,該變量的值不為( ./location/file1 )] 。
我有一個文件test1.txt,其中包含:
你好,世界!
這不行
我對sed和awk一無所知
現在我要搜索單詞-工作並在$ NEW_FILE中包含的行之后添加新行,因此所需的輸出將是:
你好,世界!
這不行
什么都沒有(./location/file1)]
我對sed和awk一無所知
我如何使用sed或awk快速實現此目標?
這就是我嘗試過的:awk'/ working / {print; 打印$ NEW_FILE; 下一個} 1'test1.txt
這給出了輸出:
你好,世界!
這不行
$ NEW_FILE
我對sed和awk一無所知
有人可以幫我弄這個嗎?
我認為我們還必須考慮NEW_FILE變量中的正斜杠和反斜杠。
您的NEW_FILE
可能是bash變量,因此不是awk中的變量。 因此,讓bash進行擴展:
awk '/working/ { print; print "'$NEW_FILE'"; next}1' test1.txt
或從命令行傳遞/設置變量:
awk -v NEW_FILE="$NEW_FILE" '/working/ { print; print NEW_FILE; next}1' test1.txt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.