我想将带有字符串的变量附加到 my_file
的第一行
sed -i "1 s/$/$my_variable/"~/my_file
现在我有这个:
42 192.168.1.1 string_from_my_variable
它有效。但是任务变得更难了,现在我需要在 string_from_my_variable
我试过sed -i "1 s#$#\|\$my_variable#"~/my_file
,当然没有用。我需要这个:
42 192.168.1.1 | string_from_my_variable
我该怎么做?感谢您的关注。
最佳答案
由于您想处理来自 shell 变量的文字字符串,我会使用 awk:
awk -v extra="$my_variable" 'NR == 1 { $0 = $0 " |" extra } 1' file
将额外的字符串添加到第一行,最后的 1
是编写 1 { print $0 }
的最短方式,因此每一行都会被打印出来。
要覆盖您的原始文件:
# GNU Awk
awk -i inplace -v extra="$my_variable" 'NR == 1 { $0 = $0 " |" extra } 1' file
# any Awk
awk -v extra="$my_variable" 'NR == 1 { $0 = $0 " |" extra } 1' file > tmp && mv tmp file
关于linux - sed如何在第一行末尾添加带竖线的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47260121/