我需要更换控制字符CTRL + A(SOH / ASCII 1)中出现的所有在Linux中的文本文件,这怎么能在SED能实现吗?
Answer 1:
尝试:
sed 's/^A/foo/g' file
使用Ctrl + V + A创建^A
在上面的命令序列。
Answer 2:
通过“替换”,我假设你想改变“就地”的文件。
使用GNU SED:
# Create a file with a single control character (SOH)
echo -e "\x01" > file
# Change SOH control characters to the literal string "SOH"
sed -i 's/\x01/SOH/g' file
# Check result
cat file
给...
SOH
该-i
选项不会在OS X上运行的sed,所以你需要通过管道sed将临时文件的工作,解决这一问题。
Answer 3:
这可以通过做cat
与-v
(等效--show-nonprinting
选项和管道进入这个sed
)。
如果控制字符标题开始(SOH)字符(CTRL + A / ASCII 1),我们希望有一个标签来取代它,我们将做到以下几点:
cat -v file | sed 's/\^A/\t/g' > out
cat -v
将替换^ A,这将随后进行匹配并在更换SOH字符sed
。
Answer 4:
你要什么,以取代他们? 如果替换为单个字符, tr
是一个更好的选择,而不是sed
。 要以字母“A”代替:
tr '\1' a < input-file > tmp && mv tmp input-file
Answer 5:
您可以使用tr命令
TR -s '\ 001' '|' 新文件
TR -s“字或分隔符”想“字或分隔符”的newfile更换
文章来源: Replacing Control Character in sed