我的文件包含
39=2^A40=1^A54=2
我想得到这样
39=2,40=1,54=2
如果Bash脚本中的行包含^ A``,我如何分隔值?
答案 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
您提到“在vi中打开”,可以在vim中执行:
:%s/^A/,/g
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