我的文件包含一行
39=2^A40=1^A54=2
我想要这样
39=2,40=1,54=2
如果行包含Bash脚本中的^ A``,如何分配值?
使用sed,你可以用逗号替换你的^A
分隔符:
echo "39=2^A40=1^A54=2" | sed 's/\^A/,/g'
使用awk
,您可以:
echo "39=2^A40=1^A54=2" | awk 'BEGIN{FS="[\\^][A]";OFS=","}{$1=$1}1'
你可以用这种方式使用sed
:
echo '39=2^A40=1^A54=2' | sed 's/\^A/,/g'
39=2,40=1,54=2
如果^A
s是文字字符串,其他答案应该有所帮助。只接受一个,我将删除这个答案。如果答案对您没有帮助,您可以试试这个:
所有^A
下面,你应该这样输入:Ctrl-V ctrl-A
你提到“在vi中打开它”,你可以在vim做:
:%s/^A/,/g
sed 's/^A/,/g' file
echo 39=2^A40=1^A54=2 | awk '{sub(/\^A40=1\^A/,",40=1,")}1'
39=2,40=1,54=2