根据行内容拆分大文本文件

时间:2015-01-26 07:22:11

标签: bash awk sed split csplit

帮助我们,我真的迷失在这里。 我有一个大文本文件,有很多链接,我试图根据链接所属的网站将它们分开。我试图用csplit命令来做,但我不确定我会怎么做,因为它取决于文本内容。

文字示例:

www.unix.com/man-page/opensolaris/1/csplit/&hl=en
www.unix.com/shell-programming-and-scripting/126539-csplit-help.html/RK=0/RS=iGOr1SINnK126qZciYPZtBHpEmg-
www.w3cschool.cc/linux/linux-comm-csplit.html
www.linuxdevcenter.com/cmd/cmd.csp?path=c/csplit+"csplit"&hl=en&ct=clnk

因此,在此示例中,前两个链接将位于一个文件中,而左侧的两个链接将分别位于一个文件中。 这怎么样?我真的不知道这是否可能。 (新手程序员)

1 个答案:

答案 0 :(得分:2)

尝试:

awk 'BEGIN{FS="/"} {print > $1}' [your file name]

输出:

cat www.unix.com 
www.unix.com/man-page/opensolaris/1/csplit/&hl=en
www.unix.com/shell-programming-and-scripting/126539-csplit-help.html/RK=0/RS=iGOr1SINnK126qZciYPZtBHpEmg-
cat www.linuxdevcenter.com 
www.linuxdevcenter.com/cmd/cmd.csp?path=c/csplit+"csplit"&hl=en&ct=clnk
cat www.w3cschool.cc 
www.w3cschool.cc/linux/linux-comm-csplit.html

{print > $1}会将输出重定向到基于$1的单独文件,在本例中为域名。