我有几个包含唯一字符串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
和NAME-
之后的 value
始终不同
我需要获取的内容应该是由标签分隔的单独文件
00B5JZ 350378,00
0599 0,00
0096 0,00
0433 0,00
1100 0,00
应该删除点 谢谢!
答案 0 :(得分:4)
使用sed:
sed -e 's/.*NAME-\([^"]*\)" value="\([^"]*\)".*/\1\t\2/' -e 's/\.//g' INPUT.HTML
答案 1 :(得分:1)
Grep解决方案
<强>输入强>
<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">
<强>命令强>
$> grep -Po "NAME-(.*) value=(.*)" INPUT_FILE | tr '"|>|NAME\-|value=' ' ' | sed 's/\.//g'
注意:&#34;。&#34;之间没有空格。和&#34; *&#34;在grep语句中
<强>输出强>
00B5JZ 350.378,00
0599 0,00
7012 0,00
0096 0,00
0433 0,00
1100 0,00
答案 2 :(得分:1)
阅读“Sed&amp; awk”之后,本书为自己找到了最优雅的解决方案:
grep 'NAME-' INPUT_FILE | awk -F\" '{ print $4 "\t" $6 }'| tr -d 'NAME\-|.'
假设我们有几个文件:
for a in *.htm; do grep 'NAME-' $a | awk -F\" '{ print $4 "\t" $6 }'| tr -d 'NAME\-|.' > $a.txt; done
谢谢大家!