40行のファイルから2行ずつ抽出し、新しいファイルを作成します。

40行のファイルから2行ずつ抽出し、新しいファイルを作成します。

次の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

awkGroup最初の列に1つがあることを確認してください。この場合、2番目の列の値を変数に保存しますfile

確認後、行全体が印刷され、>名前が変数に保存されているファイルにリダイレクトされますfile

おすすめ記事