文字列を分解する方法 - Bash

文字列を分解する方法 - Bash

次の形式の文字列のリストがあります。その部分を抽出するにはどのコマンドを使用できますか?私はgrepを使ってキーワード(ADD、ユーザー名(atra522)など)を抽出しようとしています。この問題をどのように解決するのですか?

cop1010 ADD atra522,Allison Track,CT,canada

Cut または awk を使用してコンマを検索してすべてのフィールドを取得する方法を知っていますが、最初のフィールド「cop1010 ADD atra522」で動作する方法を知りません。

ベストアンサー1

と言われたので、bashシェル組み込み機能を使ってすべての作業を行ってみましょう。

$ inp="cop1010 ADD atra522,Allison Track,CT,canada"
$ IFS=, fields=($inp)
$ echo ${fields[0]}
cop1010 ADD atra522
$ echo ${fields[1]}
Allison Track
$ echo ${fields[2]}
CT
$ echo ${fields[3]}
canada
$ IFS=\  cmd=(${fields[0]})
$ echo ${cmd[0]}
cop1010
$ echo ${cmd[1]}
ADD
$ echo ${cmd[2]}
atra522
$ 

これをエコーする代わりにすべて変数に設定することができ、実行するためにサブシェルや他のツールを作成する必要はありawkませんcut

おすすめ記事