13

sedを使用して、そうでなければ空白行からタブを削除したいと思います。たとえば、のみを含む行\t\nは に変更する必要があり\nます。 これの構文は何ですか?

4

6 に答える 6

25

sedのようなエスケープ シーケンスについてはわかりません\ttabしたがって、コンソールで文字通り a と入力する必要があります。

sed 's/^    *$//g' <filename>

bash を使用している場合tab、コンソールに入力することはできません。^Vしてから、 を押す必要がありtabます。(Ctrl-Vそしてtab) リテラル タブを印刷します。

于 2011-09-26T17:09:42.287 に答える
2

任意の空白行を空の行に置き換えるには、次を使用します

sed -r 's/^\s+$//'

-r フラグは、拡張正規表現を使用するように指示し、^\s+$ パターンは、空白を含むが他の文字を含まないすべての行に一致します。

于 2011-09-26T17:19:29.117 に答える
1

他の投稿されたソリューションは、行に1つ(そして1つだけ)のタブがある場合に機能します。Raze2dustは、sedではリテラルタブを入力する必要があると指摘していることに注意してください。別の方法は次のとおりです。

sed '/[^      ]/!s/   //g' file-name.txt

タブしかない行からタブを置き換えるもの。反転クラスは、タブのバグを含む行と一致します-次の「!」それらの行と一致しなくなります。つまり、タブのみを持つ行のみを意味します。その後、置換はそれらの行でのみ実行され、すべてのタブが削除されます。

于 2011-09-26T17:17:03.740 に答える