簡體   English   中英

重擊:查找匹配的文本並替換下一行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM