我有一個文本文件,它看起來像這樣:如何將分隔符上的文本文件拆分爲多個文件?
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