美好的一天,
我想知道如何剪切文件并将每个部分保存在不同的文件中。分隔符为]
的位置示例:
TOfile1 ] TOfile2
提前致谢
答案 0 :(得分:3)
使用awk
:
$ awk -F' []] ' '{for(i=1;i<=NF;i++) print $i > "file"i}' input
$ head file*
==> file1 <==
TOfile1
==> file2 <==
TOfile2
[]]
,因为]
是一个特殊字符,我们将其放在字符类中以将其视为字面值。 因此,如果您的输入类似于以下内容:
$ cat input
TOfile1 ] TOfile2 ] Tofile3 ] Tofile4
TOfile1 ] TOfile2
$ awk -F' []] ' '{for(i=1;i<=NF;i++) print $i > "file"i}' input
$ head file*
==> file1 <==
TOfile1
TOfile1
==> file2 <==
TOfile2
TOfile2
==> file3 <==
Tofile3
==> file4 <==
Tofile4
答案 1 :(得分:1)
sed -e 's/.*]//' myfile > TOFile2
sed -e 's/].*//' myfile > TOFile1
答案 2 :(得分:1)
这似乎正是cut
utility的标准用例。没有进一步的麻烦:
cut --delimiter=']' --field=1 input.txt > TOFile1.txt
cut --delimiter=']' --field=2 input.txt > TOFile2.txt
我在这里使用长选项名称是为了便于阅读。简短版本分别为-d
和-f
。