使用awk将一个文件拆分为多个文件

时间:2014-08-05 14:58:12

标签: awk gawk

拥有一个主文件(Master.txt),其中每一行都是一个定义HTML页面的字符串,每个字段都以制表符分隔。 记录布局如下:

<item_ID>   <field_1>   <field_2>   <field_3>
1   1.html  <html>[content for 1.html in HTML format]</html>    <EOF>
2   2.html  <html>[content for 2.html in HTML format]</html>    <EOF>
3   3.html  <html>[content for 3.html in HTML format]</html>    <EOF>

HTML页面在<field_2>中定义。 <field_3>可能没有必要,但包含在此处表示end_of_file的逻辑位置。

如何使用awk为每行生成一个文件(以<item_ID>开头),其中新文件的内容为<field_2>,新文件的名称为{ {1}}?

我在<field_1>下运行GNUwin32,并将Windows 7解决方案配置为在awk文件中执行。不幸的是,在Windows中无法进行管道连接,因此希望能够使用单awk程序解决方案。

TY提前。

1 个答案:

答案 0 :(得分:5)

假设field 3中的HTML可能包含或不包含标签:

awk -F'\t' 'match($0,/<html>.*<\/html>/){print substr($0,RSTART,RLENGTH) > $2}' file