次の40行ファイルがあります。
0001.Group admin_group
0001.Users adam, sam, paul, david, jennifer, harry
0002.Group Dev_group
0002.Users mike, pauli, gary, sherry
0003.Group Sec_group
0003.Users david, diana, mike, paul, harry
0004.Group Main_group
0004.Users wilson, robert, samule
プレフィックスを使用してグループとユーザーを抽出し、グループと同じ名前で新しいファイルを作成する必要があります。
次のようにする必要があります。
出力ファイル名:
admin_group
、内容:0001.Group admin_group 0001.Users adam, sam, paul, david, jennifer, harry
出力ファイル名:
Dev_group
、内容:0002.Group Dev_group 0002.Users mike, pauli, gary, sherry
最後に、20の新しいテキストファイルが必要です。 sedとawkを使用して2つの別々のファイルを作成しようとしましたが、失敗しました。 BashやPythonでどのように入手できますか?
ベストアンサー1
そしてawk
:
$ awk -v FS="\t" '$1 ~ /Group/ { file = $2 } { print $0 > file }' input.txt
awk
Group
最初の列に1つがあることを確認してください。この場合、2番目の列の値を変数に保存しますfile
。
確認後、行全体が印刷され、>
名前が変数に保存されているファイルにリダイレクトされますfile
。