是否可以在文件中使用一些linux工具更改行,如下所示:
是:
status:<whatever>
成为:
status:"red"
更新最佳解决方案:
awk 'BEGIN{FS=OFS=":"} $1 ~ /status/ {$2="\"red\""}1' file
这将打印输出,我们可以将其重定向到文件或其他。
如果您的Input_file与显示的示例相同,那么以下内容可能对您有所帮助。
echo "status:<whatever>" | sed 's/\(.*:\)\(.*\)/\1"red"/g'
sed
is the Stream EDitor,其目的是编辑文本流,而不是文本文件。这真的是错误的工具。你应该使用text file editor such as ed
代替:
ed -- /path/to/file <<-HERE
,s/^status:.*/status:"red"
w
q
HERE
使用GNU sed:
sed -E 's/^(status:).*/\1"red"/' file
用字符串:
s="red"
sed -E 's/^(status:).*/\1"'"${s//\//}"'"/' file
如果要“就地”编辑文件,请使用sed的选项-i
。