从图案开始,卸下所有白色空间以进行线条



我需要删除以文件中图案开头的所有白色空格。

我不想通过线路循环。有任何简单快速的解决方案吗?

例如输入文件:

<id xxx>dafd</id>
<r>31,31, 31</r>
<r> 0, 0,0 </r>

输出文件需要为

<id xxx>dafd</id>
<r>31,31,31</r>
<r>0,0,0</r>

这样?:

echo "<id xxx>dafd</id>
<r>31,31, 31</r>
<r> 0, 0,0 </r>" | sed -r '/<r>/s/ //g;'
<id xxx>dafd</id>
<r>31,31,31</r>
<r>0,0,0</r>

说明:

  • sed -r:使用扩展的常规表达
  • /<r>/:匹配的线
  • s/ //g;:全球无用的空白。

嗨,您可以通过以下脚本进行。首先创建一个诸如mytream.sh之类的文件并添加以下行,然后更改文件的许可并执行: -

vi mytream.sh

现在添加以下行: -

#!/bin/bash
file_to_tream="yourfilename"
sed '/<r>/s/ //g' $file_to_tream > tmp.txt
mv tmp.txt $file_to_tream 

或为任何文件执行此操作,只需在下面更改您的脚本,然后在命令提示符中提供文件名

#!/bin/bash
sed '/<r>/s/ //g' $1 > tmp.txt
mv tmp.txt $1

现在像

一样运行它
chmod 777 mytream.sh
./mytream.sh yourfileName

希望这对您有帮助。

最新更新