一意の部分文字列を持つ行を含むファイルがいくつかありますNAME-
:
<input type="hidden" name="NAME-00B5JZ" value="350.378,00">
<input type="hidden" name="NAME-0599" value="0,00">
<input type="hidden" name="NAME-7012" value="0,00">
<input type="hidden" name="NAME-0096" value="0,00">
<input type="hidden" name="NAME-0433" value="0,00">
<input type="hidden" name="NAME-1100" value="0,00">
name
value
html タグの小道具は常に異なります。
タブ区切りの値を、元のファイルに対応する名前の別のファイルに取得する必要があります。
00B5JZ 350378,00
0599 0,00
0096 0,00
0433 0,00
1100 0,00
value
の値からドットを削除する必要があります
編集:私はこの投稿を編集し、これを読んだ人に別のアプローチを与えることにしました:
file1.txt
ファイルが、file2.txt
でfile3.txt
あり、現在のディレクトリに他に何もないとしましょう:
for f in file*txt; do cat ${f} | sed 's/^[[:space:]]*//;s/<input.*name="NAME-//;s/" value="/\t/;s/">//;s/\.//g' > ${f//\.txt/_out\.txt}; done
- 最初にすべてのファイル名を取得します
cat
それらを1つずつ渡し、コンテンツをに渡しますsed
- 行頭の空白をすべて削除する
name
の値まですべてを削除しますname
の値と の値の間のすべてvalue
をタブ文字に置き換えますvalue
の値の後のすべてを削除します- 結果を新しいファイルに保存し、ファイル拡張子
_out
の直前に元のファイル名にサフィックスを追加しますtxt