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

时间:2019-03-13 15:42:55

标签: linux bash shell

我的文件包含

39=2^A40=1^A54=2

我想得到这样

39=2,40=1,54=2

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

4 个答案:

答案 0 :(得分: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 :(得分:1)

您可以通过以下方式使用sed

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

答案 2 :(得分:1)

如果^A是文字字符串,则其他答案应该会有所帮助。请接受一个,我将删除此答案。如果答案对您没有帮助,您可以尝试以下方法:

注意

下面的所有^A,您应该以这种方式键入: Ctrl-V ctrl-A


在vim

您提到“在vi中打开”,可以在vim中执行:

:%s/^A/,/g

与sed

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

答案 3 :(得分:0)

echo 39=2^A40=1^A54=2 | awk '{sub(/\^A40=1\^A/,",40=1,")}1'
39=2,40=1,54=2