一意の部分文字列を持つ行を含むファイルがいくつかあります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">
namevaluehtml タグの小道具は常に異なります。
タブ区切りの値を、元のファイルに対応する名前の別のファイルに取得する必要があります。
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