web-dev-qa-db-ja.com

カットは非空白から空白への区切り文字をサポートしますか?

Awkのデフォルトの区切り文字は、空白から非空白への変更です。

カットのデフォルトはタブ文字です。

非空白から空白へのデリムターを使用するようにcutに指示できますか?

例えば。

a:

foo  bar

cut -d' ' -f2 a

スペースだけを出力しますが、barを出力する必要があります。

awk '{ print $2; } a

プリントバー。

もちろん、そのセマンティクスが必要な場合は、カットの代わりにawkを使用できることがよくあります。ただし、cutには、メモリ効率が非常に高いという利点があります。特に、未使用の列をメモリにロードしません(一部のawkとは異なります)。

5
maxschlepzig

cut(1)にあなたが望むことをさせる方法がわかりません。空白の区切り文字が混在している場合、最良の選択肢はawk(1)であると信じているのは正しいと思います。

3
Warren Young

tr -s ' ' '\t'のようなものでデータを前処理することができます。しかし、あなたの列が非常に長くなければ、あなたは何の利益も得られないでしょう。 (どのくらいですか?測定して調べてください。)