Sed 无法删除回车符

Sed 无法删除回车符,sed,Sed,你好 我的任务是根据硬件供应商提供的文件创建一份报告。我需要grep这些文件的两个字段“Test_Version”和“Model Manufacturer”;对于每个字段,我需要捕获它们对应的值 在a中,我找到了创建基本报告的帮助,如下所示: find . -name "*.VER" -exec egrep -A 1 'Test_Version=|Model-Manufacturer:' {} ';' Model-Manufacturer:^M R22-100^M Test_Vers

你好

我的任务是根据硬件供应商提供的文件创建一份报告。我需要grep这些文件的两个字段“Test_Version”和“Model Manufacturer”;对于每个字段,我需要捕获它们对应的值

在a中,我找到了创建基本报告的帮助,如下所示:

    find . -name "*.VER" -exec egrep -A 1 'Test_Version=|Model-Manufacturer:' {} ';' 

Model-Manufacturer:^M
R22-100^M
Test_Version=2.6.3^M
Model-Manufacturer:^M
R16-300^M
Test_Version=2.6.3^M
但是,输出的数据充满了DOS回车“^M”。我老板想让“模型制造商”像“测试版”一样展示,即

使用sed,我试图删除“Model Manufacturer”的“^M”字符,但无效:

find . -name "*.VER" -exec egrep -A 1 'Test_Version=|Model-Manufacturer:' {} ';' | sed 's/Model-Manufacturer:^M//g'
此命令无效。我错过了什么?

试试看:

sed '/Model-Manufacturer:/s/\r//g'
如果您还有换行符,并且希望将这两行合并为一行,您可以使用上一个问题的答案中所示的技巧之一。

尝试一下:

sed '/Model-Manufacturer:/s/\r//g'

如果您也有换行符,并且希望将这两行合并为一行,则可以使用上一个问题的答案中所示的技术之一。

如果您使用Bash作为shell,或者在vi中创建脚本,则应该能够执行以下操作:

sed-e's///g'

移除CRs


Ctrl-V(键盘上的击键)按字面意思插入下一次击键,Ctrl-M是回车。

如果您使用Bash作为shell,或者在vi中创建脚本,您应该能够执行以下操作:

sed-e's///g'

移除CRs


Ctrl-V(键盘上的击键)按字面意思插入下一次击键,Ctrl-M是回车。

如果有回车符,可以使用
dos2unix
删除回车符。或使用
tr

tr -d '\r' < file
tr-d'\r'
如果有回车符,可以使用
dos2unix
删除回车符。或使用
tr

tr -d '\r' < file
tr-d'\r'
使用
tr
,我在命令行中成功地找到了:
find-名称“*.VER”-exec egrep-A 1'测试版本=|模型制造商:'{}';'>tmp1;tr-d“^M”tmp2
。但是,bash脚本中的同一命令没有任何作用!!!我想我快发疯了!救命啊!使用
tr
,我在命令行中成功地找到了:
find-名称“*.VER”-exec egrep-A 1'测试版本=|模型制造商:'{}';'>tmp1;tr-d“^M”tmp2
。但是,bash脚本中的同一命令没有任何作用!!!我想我快发疯了!救命啊!