用于分隔行的Bash脚本包含“^ A”

问题描述 投票:-1回答:4

我的文件包含一行

39=2^A40=1^A54=2

我想要这样

39=2,40=1,54=2

如果行包含Bash脚本中的^ A``,如何分配值?

linux bash shell
4个回答
2
投票

使用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'

1
投票

你可以用这种方式使用sed

echo '39=2^A40=1^A54=2' | sed 's/\^A/,/g'
39=2,40=1,54=2

1
投票

如果^As是文字字符串,其他答案应该有所帮助。只接受一个,我将删除这个答案。如果答案对您没有帮助,您可以试试这个:

Note

所有^A下面,你应该这样输入:Ctrl-V ctrl-A


在vim

你提到“在vi中打开它”,你可以在vim做:

:%s/^A/,/g

与sed

sed 's/^A/,/g' file

0
投票
echo 39=2^A40=1^A54=2 | awk '{sub(/\^A40=1\^A/,",40=1,")}1'
39=2,40=1,54=2
© www.soinside.com 2019 - 2024. All rights reserved.