Sed 无法删除回车符
你好 我的任务是根据硬件供应商提供的文件创建一份报告。我需要grep这些文件的两个字段“Test_Version”和“Model Manufacturer”;对于每个字段,我需要捕获它们对应的值 在a中,我找到了创建基本报告的帮助,如下所示: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
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脚本中的同一命令没有任何作用!!!我想我快发疯了!救命啊!