bash,用于更改文件中的行的工具

时间:2018-01-01 11:50:57

标签: bash awk sed

是否可以在文件中使用一些linux工具更改行,如下所示:

是:

status:<whatever>

成为:

status:"red"

UPDATE 最好的解决方案:

awk 'BEGIN{FS=OFS=":"} $1 ~ /status/ {$2="\"red\""}1' file

这将打印输出,我们可以将其重定向到文件或其他任何内容。

3 个答案:

答案 0 :(得分:1)

如果您的Input_file与显示的示例相同,那么以下内容可能对您有帮助。

echo "status:<whatever>" | sed 's/\(.*:\)\(.*\)/\1"red"/g'

答案 1 :(得分:1)

使用GNU sed:

sed -E 's/^(status:).*/\1"red"/' file

使用字符串:

s="red"
sed -E 's/^(status:).*/\1"'"${s//\//}"'"/' file

如果您要“就地”修改文件,请使用sed的选项-i

答案 2 :(得分:1)

sed is the Stream EDitor,其目的是编辑文本流,而不是文本文件。这真的是错误的工具。您应该使用text file editor such as ed代替:

post_id