2013-06-21 68 views
0

如何将基于reg表达式的文本文件拆分为多个文本文件(其中表达式是行的一部分)?例如:基于正则表达式的文本文件拆分

original.txt:

1,Johnny good,91240,***** 
2,Joe non-frequent,34755,*** 
4,Mary bad credit,92323,* 
2,Joe2 non-frequentsd,34755,*** 
223,Joe3 frequentsd,34755,*** 

文件分割后:

91240.txt:

1,Johnny good,91240,***** 

34755.txt:

2,Joe non-frequent,34755,*** 
2,Joe2 non-frequentsd,34755,*** 
223,Joe3 frequentsd,34755,*** 

92323.txt :

4,Mary bad credit,92323,* 

感谢您的反馈。

回答

4
awk -F, '{print >$3".txt"}' your_file 
+0

哦,Linux命令行,我是多么爱你。 – hometoast

+0

如果我记得,awk的一些实现可以让你写'awk -F,{file = $ 3“.txt”;打印>文件}'' –

0

试试这个..

var=`awk -F, '{print $3}' input.txt`; 
for word in $var 
do 
    echo $word 
    grp="grep $word input.txt" 
    out=$($grp); 
    echo $out > "$word.txt" 
done