1. ホーム
  2. バッシュ

[解決済み】同じ連続した区切り記号を1つとして扱うには?

2022-03-26 04:32:56

質問

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

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

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

awk '{ printf $4; }'

またはsed

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

を使うとスペースが潰れてしまうのですが、何か対処法があれば教えてください。 cut と複数の区切り文字をネイティブで使用できますか?

どのように解決するのですか?

試してみてください。

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

から tr のマニュアルページをご覧ください。

-s, --squeeze-repeats 繰り返し文字を入力するシーケンスを置き換えます。
                        SET1 にリストされているものを単発の
                        その文字の