替换SED中的控制字符



我需要在Linux中的文本文件中替换控制字符ctrl a(soh/ascii 1)的所有出现,如何在sed中实现?

<</p>

尝试:

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

使用 ctrl v a 在上述命令中创建^A序列。

by"替换",我假设您想更改文件'在场'。

使用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提供到临时文件来进行工作。

这可以通过cat使用-v(等效地--show-nonprinting选项,然后将其输送到sed)。

如果控制字符的启动(SOH)字符(CTRL A/ASCII 1),我们想用一个选项卡替换它,我们将执行以下操作:

cat -v file | sed 's/^A/t/g' > out

cat -v将用 ^a替换SOH字符,然后将其匹配并替换为sed

您想用什么代替它们?如果替换是一个字符,则trsed更好。替换为字母" a":

tr '1' a < input-file > tmp && mv tmp input-file

您可以使用tr命令

tr -s' 001'|'newfile

tr -s" word或deLimiter"想要替换为" word或deLimiter" newfile

相关内容

  • 没有找到相关文章

最新更新