Regex 如何使用bash打印列表中的所有项目,包括用逗号分隔的项目?
好的,我有file.txt,它有两个以制表符分隔的列表:Regex 如何使用bash打印列表中的所有项目,包括用逗号分隔的项目?,regex,bash,command,Regex,Bash,Command,好的,我有file.txt,它有两个以制表符分隔的列表: A sheep,cow B pig C horse D goat,duck,llama 我想在新文件file2.txt中打印第二个列表中的所有项目,即使是用逗号分隔的项目: sheep cow pig horse goat duck llama 我试着这样做: cat file.txt | awk 'NR>1 {for (i=2; i<=NF; i++) if ($i !=",") print $i}' |
A sheep,cow
B pig
C horse
D goat,duck,llama
我想在新文件file2.txt中打印第二个列表中的所有项目,即使是用逗号分隔的项目:
sheep
cow
pig
horse
goat
duck
llama
我试着这样做:
cat file.txt | awk 'NR>1 {for (i=2; i<=NF; i++) if ($i !=",") print $i}' | sort -d | uniq > file2.txt
cat file.txt | awk'NR>1{for(i=2;i我会采取简单的方法:
$ cut -f 2 file.txt | tr ',' '\n'
sheep
cow
pig
horse
goat
duck
llama
它得到第二列,并用换行符替换逗号。读过《懒人启蒙指南》吗?为什么会很难?:-)Oho!简单的答案总是最好的。这非常有效。谢谢!@KM fyi,您的尝试没有成功,因为您在没有告诉awk的情况下对字段进行了迭代,
分隔的项也应该被视为字段。如果您添加-F'[\t,]'
,它会起作用