给定文件test及其内容:
bcd://dfl
sf
我想将额外信息附加到具有特定内容的行(以bcd开头) 虽然以下脚本有效
awk '/bcd*/ {print $0", extra information"} ' test > test.old && mv test.old test
它删除不匹配的行。 (sf)
是否可以将它们保留在输出文件中?
最佳答案
正如在附加 {..}1
的评论中讨论最后会解决你的问题,
awk '/^bcd/ {print $0", extra information"; next} 1' file
因为 /<pattern>/{<action>}
应用于匹配 <pattern>
的行仅 ,其他行按原样打印,{..}1
是打印行的always-true-no-matter-what条件。
关于linux - 使用 awk 追加到文件的特定行,保留不匹配的行不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43573356/