たとえば、「E」が見つかるたびに変更される値に基づいてファイルに増分値を追加したいとします。 (これは任意の値に置き換えることができます。)私が試したいくつかのオンライン調査では:
awk '/E/{sub("E", "E"++v)}1' output.txt > output2.txt
ただし、これは「E」自体の後に増分値のみを追加します。いいえ、これは学校の課題ではありません。このデータは、次にその値がIDフィールドであるMySQLテーブルに収集されます。このファイル(非常に大きなバージョン)は、単語復号化アプリケーション用にMySQLテーブルに収集されます。
サンプルファイル:output.txt
aaa
aba
acaE
baa
bab
badE
caa
cab
cdeE
ddd
サンプルファイル:希望
1aaa
1aba
1acaE
2baa
2bab
2badE
3caa
3cab
3cdeE
4ddd
答え1
次のようにできます。
awk '{print i $0}; /E$/{i++}' i=1 file
デフォルトでは設定されていi=1
ないため、初期値に設定します。その後、その行が一致していることを確認して増やします。{print i $0}
i
$0
E
i
αѓsнιιが提案した非常に類似した代替案は次のとおりです。
awk '{print i+1 $0}; /E$/{i++}' file
最初に設定する必要がないように合計1
します。i
i=1