Linux 分隔一行的Bash脚本包含^A「;
我的文件包含一行,如Linux 分隔一行的Bash脚本包含^A「;,linux,bash,shell,Linux,Bash,Shell,我的文件包含一行,如 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=
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
精神抖擞 您提到“在vim中打开”,您可以在vim中执行以下操作:
:%s/^A/,/g
与塞德
你想要实现什么?是否要删除文件中所有出现的
^A
?是否将^A
的文字字符串“^A”
?否,我希望用“^A”分隔所有值。我不想删除^A的所有出现。具体来说,不可打印的ASCII字符\x01
(“标题的开始”)将在vi中显示为^A
,但它不是文字^A
。尊敬的用户2266543,@BenjaminW。@Kent的意思是,linux中的文件有时会显示^A
和^M
或^I
等字符,但它们并不表示插入符号和字母的组合,而是控制字符的组合。如果键入命令文件名
它将返回什么。如果它表示“ASCII文件”,则您是安全的,如果它表示其他内容,则表示插入符号。
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