如何删除匹配单词之间的空格?

时间:2016-06-08 08:18:52

标签: regex linux bash replace sed

我已经阅读了很多关于如何从文件中替换空格的问题,但我遇到了以下问题:

我有一个这样的文件:

<foo>"crazy foo"</foo> <bar>dull-bar</bar>

我试图删除> <之间的空格,只删除那些空格,以便文件如下:

`<foo>"crazy foo"</foo><bar>dull-bar</bar>`

到目前为止,我已尝试使用sedtr删除。 Sed没有任何机会并使用tr '> <' '><'输出:

<foo>"crazy foo"</foo><<bar>dull-bar</bar>

3 个答案:

答案 0 :(得分:3)

sed -i -e "s/> *</></g" YourFile

-i表示YourFile已修改。删除此选项以测试命令并在shell输出中显示结果。

*匹配n个空格。

sed表达式结尾处的g表示“替换所有出现次数”。

答案 1 :(得分:0)

你可以试试这样的事情

echo "<foo>"crazy foo"</foo> <bar>dull-bar</bar>" | sed 's/>[[:space:]]*</></g '

答案 2 :(得分:0)

awk -F"\"" '{print $3}' file.txt | sed 's/ //g'