我需要用与以下线相似的线路中的空格替换:
%ABC 999 123 "-234" AAA
%999 123 "ABC" 456 BBB
每个表达式所包含的规则没有规则,只有一个空间将其分开。我需要用给定的字符串替换n'th(为示例,例如第4个表达式),例如:(将第4个表达式更改为666)
%ABC 999 123 "-234" AAA ----> %ABC 999 123 666 AAA
%999 123 "ABC" 456 BBB ------> %999 123 "ABC" 666 BBB
我正在使用Linux,我无法做到。.我尝试以%(。
任何帮助将不胜感激!
$ awk '{$4=666}1' file
%ABC 999 123 666 AAA
%999 123 "ABC" 666 BBB
$ sed 's/[^ ]+/666/4' file
%ABC 999 123 666 AAA
%999 123 "ABC" 666 BBB
这可能对您有用(gnu sed):
sed -r 's/S+/666/4' file
这是一个可能有用的选择。
假设:
string='%ABC 999 123 "-234" AAA'
new_val=666
element=4
尝试更换第四元素可以使用" sed"one_answers" cut"
在bash中完成replaced_string=$(echo ${string} | sed "s%$(echo ${string} | cut -d -f${element})%${new_val}%")
希望这会有所帮助。