输入:
<measType p="1">pmCabinetFanSpeed</measType>
<measType p="2">pmCabinetFanSpeedExternal</measType>
<measType p="3">pmCabinetTemperature</measType>
<measType p="4">pmSpmBarometricAirPressure</measType>
<r p="1"> 61 </r>
<r p="2"> </r>
<r p="3">, , , , ,</r>
<r p="4">1314 1537</r>
预期产出:
<measType p="1">pmCabinetFanSpeed</measType>
<measType p="2">pmCabinetFanSpeedExternal</measType>
<measType p="3">pmCabinetTemperature</measType>
<measType p="4">pmSpmBarometricAirPressure</measType>
<r p="1">61</r>
<r p="2"></r>
<r p="3">,,,,,</r>
<r p="4">13141537</r>
基本上,删除&gt;之后的所有空白区域。该行以<r>
有什么想法吗?
我已尝试sed -E 's/(<r p=[0-9]+>) /\1/g'
,但它不会保留逗号。
答案 0 :(得分:0)
关注awk
可能对您有帮助。
awk '{match($0,/>.*</);val=substr($0,RSTART,RLENGTH);gsub(/ /,"",val);print substr($0,1,RSTART-1) val substr($0,RSTART+RLENGTH+1)}' Input_file
现在也添加非单线形式的解决方案。
awk '
{
match($0,/>.*</);
val=substr($0,RSTART,RLENGTH);
gsub(/ /,"",val);
print substr($0,1,RSTART-1) val substr($0,RSTART+RLENGTH+1)
}
' Input_file
如果您想将输出保存到相同的Input_file中,请在上面的代码中添加以下内容。
> temp_file && mv Input_file temp_file
将输出保存到Input_file本身。