使用grep / sed / tr删除制表符和空行

时间:2016-03-19 16:39:37

标签: bash unix sed grep tr

我有一个看起来像这样的文本文件:

> cat test.txt

    “Il faut attendre l’expiration du cache.”


    “C'est sûrement un problème lié à l'hébergement.”


    “Tu as du cliquer de travers.”


> cat -e test.txt
$
    �M-^@M-^\Il faut attendre l�M-^@M-^Yexpiration du cache.�M-^@M-^]$
    $
$
    �M-^@M-^\C'est sûrement un problème lié à l'hébergement.�M-^@M-^]$
    $
$
    �M-^@M-^\Tu as du cliquer de travers.�M-^@M-^]$
    $

我希望我的文件看起来像这样:

> cat test.txt
“Il faut attendre l’expiration du cache.”
“C'est sûrement un problème lié à l'hébergement.”
“Tu as du cliquer de travers.”

为了做到这一点,我尝试了sed -e 's/^\s*//' -e '/^$/d' test.txt 但我无法得到我想要的结果。它只删除一个空白行,我仍然没有弄清楚如何删除标签。

> sed -e 's/^\s*//' -e '/^$/d' test.txt
    “Il faut attendre l’expiration du cache.”

    “C'est sûrement un problème lié à l'hébergement.”

    “Tu as du cliquer de travers.”

如何删除字符串开头的所有空行和制表符?

1 个答案:

答案 0 :(得分:0)

你可能没有GNU Sed。使用GNU Sed,你的sed命令应该可以工作。

您可以尝试另一种解决方案:

sed -e 's/^[[:space:]]*//' -e '/^$/d' test.txt

或者,只是删除使用空格和标签:

sed -e 's/^[ \t]*//' -e '/^$/d' test.txt