我想知道如何在 while 循环中检查文件的结尾。我在这里做的是如果有一些词,例如“菠萝”、“苹果”、“洋葱”、“橙色”等,我想使用 grep 命令查找包含特定词的行并发表一些评论“窗户”。例如,如果我使用grep 'a' 'file',那么它会找到“菠萝”、“苹果”和“橙色”。然后,最后我想把它打印成“菠萝,窗户,苹果,窗户,橙子,窗户”,像这样。所以,我想在 while 或 for 循环中设置一些条件。任何帮助将不胜感激。
编辑:示例输入
apple
banana
pineapple
orange
mandu
ricecake
meat
juice
milk
onion
green onion
Run Code Online (Sandbox Code Playgroud)
使用 grep 命令时的预期输出 --> grep 'a' 'file name'
apple
window
banana
window
pineapple
window
orange
window
mandu
window
ricecake
window
meat
window
Run Code Online (Sandbox Code Playgroud)
在window匹配的每一行之后打印a:
$ awk '/a/{print; print "window"}' filename
apple
window
banana
window
pineapple
window
orange
window
mandu
window
ricecake
window
meat
window
Run Code Online (Sandbox Code Playgroud)
这个怎么运作
/a/{...}选择匹配正则表达式的行a。对于每一行,执行大括号中的命令。
print 打印包含匹配项的行
print "window"打印window。
$ sed -n '/a/{s/$/\nwindow/; p}' filename
apple
window
banana
window
pineapple
window
orange
window
mandu
window
ricecake
window
meat
window
Run Code Online (Sandbox Code Playgroud)
这个怎么运作
-n 告诉 sed 不要打印,除非我们明确地这样做。
/a/{...}选择匹配正则表达式的行a。对于这些行,执行花括号中的命令。
s/$/\nwindow/window在当前行的末尾添加一个换行符。
p 印刷。