我试图使用变量替换特定行号中的字符串

时间:2015-11-01 00:21:06

标签: shell sed

这是我的尝试:

sed -i -e "$chs/|0|/|900|/" users

变量" chs"有我想要的行号 替换字符串,但它不起作用,任何想法?

2 个答案:

答案 0 :(得分:3)

如果chs包含行号,例如5,则表示以下内容:

sed -i -e "$chs/|0|/|900|/" users

将扩展为:

sed -i -e "5/|0|/|900|/" users

作为sed命令,这是无稽之谈。它应该返回有关unknown command的错误消息。

您需要创建一个以行号开头的替换命令。尝试:

sed -i -e "$chs s/|0|/|900|/" users

答案 1 :(得分:-1)

要求救援!

 awk -v n="$chs" 'NR==n{sub(/search/,replace)}1'