「cut」コマンドで連続する同じ区切り文字を 1 つとして扱うにはどうすればよいでしょうか? 質問する

「cut」コマンドで連続する同じ区切り文字を 1 つとして扱うにはどうすればよいでしょうか? 質問する

列ベースの「スペース」調整されたテキスト ストリームから特定の (4 番目の) フィールドを抽出しようとしています。コマンドをcut次のように使用しようとしています。

cat text.txt | cut -d " " -f 4

残念ながら、cut複数のスペースを1つの区切り文字として扱いません。awkでパイプすることもできました。

awk '{ printf $4; }'

またはsed

sed -E "s/[[:space:]]+/ /g"

cutスペースを折りたたむには、複数の区切り文字をネイティブに処理する方法があるかどうかを知りたいです。

ベストアンサー1

試す:

tr -s ' ' <text.txt | cut -d ' ' -f4

man ページからtr:

-s, --squeeze-repeats は、繰り返し文字の各入力シーケンスを置き換えます。
                        SET1に1回だけ出現する
                        その性格の

おすすめ記事