50 我有一种情况想要替换许多文件中的特定字符串 用另一个字符串BBB替换一个字符串AAA,但是有很多以AAA开头或以AAA结尾的字符串,我只想在第34行替换一个,并保持其他字符串不变。 是否可以通过行号指定,在所有文件上,此字符串恰好位于第34行。 sed awk — rypto source
82 您可以在sed中指定行号,或者在awk中指定NR(记录数)。 awk 'NR==34 { sub("AAA", "BBB") }' 如果要在命令行上指定多个文件,请使用FNR(文件编号记录)。 awk 'FNR==34 { sub("AAA", "BBB") }' 要么 sed '34s/AAA/BBB/' 用sed进行就地替换 sed -i '34s/AAA/BBB/' file_name — 瓦纳加斯 source
-3 让我们假设您要替换file_record中的第三行: sed -i "s/`head -3 file_record | tail -1 `/replaced/" file_record — 拉曼 source 在头和-1之后使用反引号...在这里不接受 — RAMAN 1 这只是行不通的。它需要一些重型转义。如果第三行在其他地方重复怎么办? — Sparhawk