使用shell中的特定键附加到行

时间:2018-05-08 16:59:40

标签: linux bash shell

我有一个文件test.txt,其中有一行如下

values =  abc, def, dfg, ert, sdf, sfd, sdf   

我使用shell脚本在test,txt的值中添加一个带逗号分隔的新值。

例如,我需要在test.txt中添加'ghf':

values =  abc, def, dfg, ert, sdf, sfd, sdf, ghf   

此外,我需要删除该值。

例如,如果我需要删除 test.txt中的'ert':

values =  abc, def, dfg, sdf, sfd, sdf, ghf   

如何在shell脚本中实现此目的?

已编辑:

如果我给出

echo "abc" >> test.txt

能够将abc附加到文件的末尾,但我需要附加到test.txt中的values =字段

1 个答案:

答案 0 :(得分:0)

有几种方法可以实现这一点,但这里有两个简单的sed命令可以帮助你入门。首先,附加字符串",grt"以" values ="开头的行尾在文件test.txt中:

sed -e "s/\(values = .*$\)/\1, ghf/" < test.txt

其次,删除字符串&#34;,grt&#34;从&#34;值=&#34;开始的行在同一个文件中:

sed -e "s/\(values = .*\), grt\(.*$\)/\1\2/" < test.txt

这些只是示例 - 例如,如果字符串&#34; grt&#34;则第二个命令将失败。是等号后面的第一个字符串 - 但希望它们能让你开始。