替换 sed 中的控制字符
- 2024-11-14 08:30:00
- admin 原创
- 172
问题描述:
我需要在 Linux 中的文本文件中替换所有出现的控制字符 CTRL+A(SOH/ascii 1),如何在 SED 中实现?
解决方案 1:
尝试:
sed 's/^A/foo/g' file
使用Ctrl
++在上面V
的命令中A
创建序列。^A
解决方案 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 传送到临时文件来解决该问题。
解决方案 3:
这可以通过cat
(-v
等效--show-nonprinting
选项并将其导入sed
)来完成。
如果控制字符是标题开始 (SOH) 字符 (CTRL+A / ASCII 1),并且我们想用制表符替换它,我们可以执行以下操作:
cat -v file | sed 's/^A/ /g' > out
cat -v
将用 ^A 替换 SOH 字符,然后在 中进行匹配和替换sed
。
解决方案 4:
你想用什么来替换它们?如果替换的是单个字符,tr
是比 更好的选择sed
。要用字母“a”替换:
tr '' a < input-file > tmp && mv tmp input-file
解决方案 5:
您可以使用 tr 命令
tr -s'\001''|'新文件
tr -s “单词或分隔符”想要用“单词或分隔符”替换 newfile
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD