パターン別サブセット変数

パターン別サブセット変数

bash変数"foo"に割り当てた次の形式の区切りファイルがあります。

echo $foo

A  1  hello
B  2  hello
C  3  hello
D  4  world
E  5  world
F  6  world

私はこの変数を新しいテキストファイルに分割し、列3の値が同じすべての行が1つのファイルになるようにするawkベースのソリューションを見つけようとしています。完璧な世界では、ファイル名は3列の文字列で指定されています。この場合、ファイルは次の内容を含む「hello.txt」と「world.txt」です。

cat hello.txt
A  1  hello
B  2  hello
C  3  hello

cat world.txt
D  4  world
E  5  world
F  6  world

編集:以下に説明するように、いくつかの以前の試みを含める必要があります。 grepのようなものを使ってパターンがあらかじめ知られている場合、これを行う方法を知っていますが、ワイルドカードを許可する方法がわかりません。私は非常に特定のパターンでのみ抽出する必要があることがわかっている場合は、通常これを行います。

echo "$foo" | grep -w "hello" > hello.txt
echo "$foo" | grep -w "world" > world.txt

ベストアンサー1

あなたは利用可能でなければなりません

   awk '{print > $3 ".txt"}' <<< "$foo"

前任者。

$ echo "$foo"
A  1  hello
B  2  hello
C  3  hello
D  4  world
E  5  world
F  6  world

awk '{print > $3 ".txt"}' <<< "$foo"

$ head {hello,world}.txt
==> hello.txt <==
A  1  hello
B  2  hello
C  3  hello

==> world.txt <==
D  4  world
E  5  world
F  6  world

おすすめ記事