Linux:RHEL5 Tikanga 版本:2.6.18-402.el5(根据 uname -a)
我通过从 Windows 源文件(包含一些Version=x.x.x
值)中提取某些行并将其放入新文件来创建文件aa.txt
。这适用于查找和 grepping 部分。
做类似的事情echo -n "AA "; echo "$(grep "Version=[1-9]" /some/mounted/loc/windows/sourcefile.txt) -" >> aa.txt
。
- 我必须单独使用
echo -n
,AA
即我不能echo AA
使用echo version part
后一个 echo 命令。
因此,生成的aa.txt
文件在视觉上看起来像这样:
现在,如果我
cat
这样做,它不会打印第一行,只打印最后一个-
字符。
如果我使用dos2unix
(它实际上只用于删除行结束字符并将 Windows 格式文件转换为 Linux 行结束字符格式文件),它仍然无法正常工作,因为^M
第一行不是该行中的最后一个字符。PS:如果您注意到,第一行的颜色^M
与第二行的颜色不同,这是我通过键入手动添加的。
在这个文件上运行od -cab aa.txt
(八进制转储),告诉我:
首先
^M
,字符是\r
,cr sp
和015 040
(即回车和不可见的空格字符)。对于第二行,
^M
, 向我显示正常值^ M
,^ M
和136 115
(当我手动输入时^
,M
在第二行中,这是预期的)。
问题:
1. 使用tr -d '\r' < aa.txt > new.aa.txt
我可以解决这个问题,但是我可以在命令模式中使用什么模式vi
或vim
删除这个字符。试过了:%s/^M//g
,但没有捕捉到模式。