我需要删除以文件中的模式开头的行的所有空格。
我不想循环播放。有没有简单快捷的解决方案?
例如 输入文件:
<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>
答案 0 :(得分:2)
喜欢这个?:
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;
:全局替换空白。答案 1 :(得分:2)
您好,您可以通过以下脚本来完成。首先创建一个像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
希望这会对你有所帮助。