切り取ったり切ったりしないときは何を使​​うべきですか?

切り取ったり切ったりしないときは何を使​​うべきですか?

cities次のファイルがあります。

[1598] San Diego, US (inactive)
[4517] St Louis, US (inactive)
[6346] Orlando, US (inactive)

私は次のように都市名を切り取りたいと思います。

San Diego
St Louis
Orlando

これが私が思いつく最善の方法です:

cut -d ',' -f1 cities | cut -d ']' -f2

しかし、名前の前にはまだ空白が残っています。cut続行できるように複数の文字を区切り文字として受け入れる同様のコマンドはありますか]

ベストアンサー1

アッ(また確認奇妙な情報)この種の問題には美しいです。努力する:

awk -F'[],] *' '{print $2}' cities

これはフィールド区切り文字を-F次のように定義します[],] *。これは、閉じ括弧またはカンマが一度発生し、その後に空白がゼロまたは複数が続くことを意味します。もちろん、どんな要件にも合わせて変更できます。正規表現を読んでください。

行を分割したら、分割結果に対して必要な操作を実行できます。ここでは、print 2番目のフィールドを使用することにしましたprint $2。 awkディレクティブの周りに一重引用符を使用することが重要です。それ以外の場合、$ 2はシェルに置き換えられます。

おすすめ記事