我有以下文本文件:
A,B,C A,B,C A,B,C
有没有办法,使用标准* nix工具(cut,grep,awk,sed等)来处理这样的文本文件并得到以下输出:
A A A B B B C C C
你可以做:
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
第三部分将剥离数字
如果您在高级栏中已经知道了,则可以使用shell for循环与cut相结合。 这是一个使用bash语法的例子:
for i in {1..3}; do cut -d, -f $i file.txt done
尝试:
awk 'BEGIN {FS=","} /([AC],)+([AC])?/ {for (i=1;i<=NF;i++) print $i}' YOURFILE | sort