我有一个文本文件,它看起来像这样:如何将分隔符上的文本文件拆分为多个文件?
INPUT_FILE
1|abc
2|def
3|ghi
n|etc...
我需要分割该成两个文件的竖线分隔。所以这是预期的输出:
File_1:
1
2
3
n
File_2:
abc
def
ghi
etc
我不知道该输入文件将有多少行有。你如何以ksh或bash实现这个目标?
谢谢。
我有一个文本文件,它看起来像这样:如何将分隔符上的文本文件拆分为多个文件?
INPUT_FILE
1|abc
2|def
3|ghi
n|etc...
我需要分割该成两个文件的竖线分隔。所以这是预期的输出:
File_1:
1
2
3
n
File_2:
abc
def
ghi
etc
我不知道该输入文件将有多少行有。你如何以ksh或bash实现这个目标?
谢谢。
AWK将这个任务是合适的:
awk -F\| '{print $1 > "File_1"; print $2 > "File_2"}' input_file
此分割你的文字 “|”并将每列打印到相应的文件。
如果有两个以上的领域,你可能更愿意使用,而不是一个循环:
awk -F\| '{for(i=1;i<=NF;++i) print $i > "File_" i}' input_file
cut -d '|' -f 1 input_file > File_1
cut -d '|' -f 2 input_file > File_2
只有使用bash:
while IFS='|' read A B; do echo "$A" >>File_1; echo "$B" >>File_2; done <input_file
下面是使用其他的bash命令的另一个解决方案
cat input_file | cut -d '|' -f1 > File_1
cat input_file | cut -d '|' -f2 > File_2
或者你可以将它们放在一条线上
cat input_file | tee >(cut -d '|' -f1 > File_1) | cut -d '|' -f2 > File_2
This Works。谢谢! – user3590335 2014-08-30 16:42:57