我有以下文本文件:
A,B,C
A,B,C
A,B,C
有没有办法,使用标准的* nix工具(cut,grep,awk,sed等)处理这样的文本文件并得到以下输出:
A
A
A
B
B
B
C
C
C
答案 0 :(得分:5)
你可以这样做:
tr , \\n
,这将生成
A
B
C
A
B
C
A
B
C
你可以排序。
除非你想拉第一列然后第二列然后第三列,在这种情况下你需要类似的东西:
awk -F, '{for(i=1;i<=NF;++i) print i, $i}' | sort -sk1 | awk '{print $2}'
为了解释这一点,第一部分生成
1 A
2 B
3 C
1 A
2 B
3 C
1 A
2 B
3 C
第二部分将稳定排序(因此保留内部顺序)
1 A
1 A
1 A
2 B
2 B
2 B
3 C
3 C
3 C
第三部分将删除数字
答案 1 :(得分:3)
如果您知道高级列数,则可以使用shell for-loop与cut结合使用。以下是使用bash语法的示例:
for i in {1..3}; do
cut -d, -f $i file.txt
done
答案 2 :(得分:0)
尝试:
awk 'BEGIN {FS=","} /([A-C],)+([A-C])?/ {for (i=1;i<=NF;i++) print $i}' YOURFILE | sort