パターンに基づいてファイルを分割

パターンに基づいてファイルを分割

以下のファイルがあります。

***ABC***
Line1*
L*ine2*
***DEF***
Line3*
Lin*e4*

次のデータをABC使用して2つのファイルを作成する必要があります。DEF

ABC.dat:

Line1*
L*ine2*

DEF.dat:

Line3*
Lin*e4*

小さなシェルスクリプトを使用してファイルを生成することもできます。

ベストアンサー1

$ awk '/^\*\*\*/{gsub(/\*/,""); fname=$0".dat"; next} {print > fname}' ip.txt 
$ cat ABC.dat 
Line1*
L*ine2*
$ cat DEF.dat 
Line3*
Lin*e4*
  • /^\*\*\*/次に始まる行と一致します。***
    • gsub(/\*/,"")*その行をすべて削除してください。
    • fname=$0".dat"追加された残りの文字を変数.datに代入fname
    • next次の行に移動
  • print > fname現在行の内容を保存したファイル名で印刷します。fname

おすすめ記事