如何删除unix文件中的ctrl F

use*_*553 7 sed

在编辑 unix 文件时,我在 vi 编辑器中获取如下数据。

MGW:^FVMG107
MGW:^FVMG113
MGW:^FVMG108
MGW:^FVMG103
Run Code Online (Sandbox Code Playgroud)

上面的数据^Fcat命令中是不可见的。我也试过dos2unix& sed,但它仍然存在。我怎样才能删除^F

Áng*_*gel 15

^F vim 是否告诉您那里有一个不可打印的字符 0x06(F 是字母表的第六个字母,它们的范围是:'^@'、'^A'、'^B'...'^Y'、'^ Z'. '^[', '^\', '^]', '^^', '^_')

我在 vim、nano、joe 中以图形方式删除它没有问题……但是如果你更喜欢命令行方法,知道它是字符 0x06,你可以使用sed -i 's/\x06//g' filename它来删除它。

PS:恐怕删除 ^F 的 polym 解决方案cat -v仅在您的文件没有任何其他无法打印的字符时才有效,这些字符会被损坏。


pol*_*lym 2

编辑:正如Angel提到的,您不应该使用此解决方案,因为它可能会产生不需要的更改。

他的解决方案(hex( ^F)== \x06):

sed -i 's/\x06//g' filename
Run Code Online (Sandbox Code Playgroud)

我的(不正确的)解决方案:

cat -v oldfile | sed 's/\^F//g' > newfile
Run Code Online (Sandbox Code Playgroud)

应该这样做。

  • 正如 Ángel 下面所说,这可能会对文件内容进行其他不需要的更改 - 这不是问题的普遍答案。 (3认同)