Linuxで特定のパターンを見つけた後にdcnファイルの値を印刷する方法

Linuxで特定のパターンを見つけた後にdcnファイルの値を印刷する方法

このように入力しましたが、

[Data.11]
Store,100,,,,,,,,,,,,,,,,,,,5222
Store,101,,,,,,,,,,,,,,,,,,,5235
[Data.12]
TaxSchedulePt,5899,2,110.0100,99999999.99,,8.8750
TaxSchedulePt,5900,1,0,110.00,,0.0000
[Data.13]
TaxSchedulePt,5900,1,0,110.00,,0.0000
TaxSchedulePt,5900,2,110.0100,99999999.99,,8.8750

まず[Data.]は[Data。]与えられた入力ファイルで見つかった場合は、特定の[Data.*]値を別々のファイルに書き込む必要があります。


[Data.11]の予想出力ファイル

Store,100,,,,,,,,,,,,,,,,,,,5222
Store,101,,,,,,,,,,,,,,,,,,,5235

[Data.12]の予想出力ファイル

TaxSchedulePt,5899,2,110.0100,99999999.99,,8.8750
TaxSchedulePt,5900,1,0,110.00,,0.0000

[Data.13]の予想出力ファイル

TaxSchedulePt,5900,1,0,110.00,,0.0000
TaxSchedulePt,5900,2,110.0100,99999999.99,,8.8750

私が試したことは次のとおりです。

filename=$1
Var1=Data.18
if grep -wq "$Var1" $filename ;
then
 awk '$1 ~ /Data[.]18/' > /ttk/new/data.dcn
else
echo "not Worked"
fi

ベストアンサー1

awk 'BEGIN{d=0;p=0} d==1&&/\[Data\.[0-9]+\]/{p=0} p==1{print} /\[Data\.[0-9]+\]/&&d==0{p=1;d=1}'

説明:1日の開始時に印刷部分(p = 0)とデータ部分(d = 0)がありません。 p==1 ならラインを印刷しているのです。データ行が見つかり、まだデータ部分が見つからない場合は、印刷をオンにしてデータ部分が見つかったことを記録します。データセクションが見つかりましたが、すでにデータセクションが見つかった場合は、印刷をオフにしてください。

おすすめ記事