如何使用awk筛选.csv文件
我想知道如何使用awk或其他cli工具从这个.csv文件中获取水果的名称 我在vim中使用了一个宏来编辑该文件,但我认为有一个简单的一行程序也可以做到这一点 : 我想要的最终结果如下所示:如何使用awk筛选.csv文件,awk,sed,grep,echo,cat,Awk,Sed,Grep,Echo,Cat,我想知道如何使用awk或其他cli工具从这个.csv文件中获取水果的名称 我在vim中使用了一个宏来编辑该文件,但我认为有一个简单的一行程序也可以做到这一点 : 我想要的最终结果如下所示: Apple Lemon Lime Lychee Mango Mangostine Melon Cantaloupe Honeydew melon Watermelon Rock melon Nectarine Orange Peach Pear Williams pear or Bartlett pear P
Apple
Lemon
Lime
Lychee
Mango
Mangostine
Melon
Cantaloupe
Honeydew melon
Watermelon
Rock melon
Nectarine
Orange
Peach
Pear
Williams pear or Bartlett pear
Pitaya
Physalis
Plum/prune (dried plum)
Pineapple
Pomegranate
Raisin
Raspberry
Western raspberry (blackcap)
我意识到这是一个重复:
我建议:
awk -F '","' '{print $2}' file
使用“”、“
作为字段分隔符并输出第二列。我建议:
awk -F '","' '{print $2}' file
使用“
”、“
作为字段分隔符并输出第二列。使用此Perl one liner:
perl -F',' -lane '$F[1] =~ tr/"//d; print $F[1];' in_file > out_file
Perl one liner使用以下命令行标志:-e
:告诉Perl在线查找代码,而不是在文件中。-n
:一次循环输入一行,默认情况下将其分配给$。
-l
:在行内执行代码之前,先去掉输入行分隔符(“\n”
,默认情况下在*NIX上),然后在打印时将其追加。
-a
:在空格或-F
选项中指定的正则表达式上将$\ucode>拆分为数组@F
。
-F','
:按逗号而不是空格拆分为@F
另请参见:
使用以下Perl单行程序:
perl -F',' -lane '$F[1] =~ tr/"//d; print $F[1];' in_file > out_file
Perl one liner使用以下命令行标志:
-e
:告诉Perl在线查找代码,而不是在文件中。
-n
:一次循环输入一行,默认情况下将其分配给$。
-l
:在行内执行代码之前,先去掉输入行分隔符(“\n”
,默认情况下在*NIX上),然后在打印时将其追加。
-a
:在空格或-F
选项中指定的正则表达式上将$\ucode>拆分为数组@F
。
-F','
:按逗号而不是空格拆分为@F
另请参见:
GNU awk和gensub()
:
输出
Apple
...
Lemon
Lime
GNU awk和gensub()
:
输出
Apple
...
Lemon
Lime
使用awk
删除第二个字段中的所有“
,并且仅在第二个字段的开头和结尾
awk -F',' '{gsub(/^"|"$/,"",$2);print $2}' file
Apple
Lemon
Lime
Lychee
Mango
Mangostine
Melon
Cantaloupe
Honeydew melon
Watermelon
Rock melon
Nectarine
Orange
Peach
Pear
Williams pear or Bartlett pear
Pitaya
Physalis
Plum/prune (dried plum)
Pineapple
Pomegranate
Raisin
Raspberry
Western raspberry (blackcap)
使用awk
删除第二个字段中的所有“
,并且仅在第二个字段的开头和结尾
awk -F',' '{gsub(/^"|"$/,"",$2);print $2}' file
Apple
Lemon
Lime
Lychee
Mango
Mangostine
Melon
Cantaloupe
Honeydew melon
Watermelon
Rock melon
Nectarine
Orange
Peach
Pear
Williams pear or Bartlett pear
Pitaya
Physalis
Plum/prune (dried plum)
Pineapple
Pomegranate
Raisin
Raspberry
Western raspberry (blackcap)
使用sed和awk的组合
sed -e 's/^"//;s/","/\t/g;s/"//g' Input.csv| awk -F'\t' '{print$2}'
或
两者都可以通过更改awk列号来打印每一列。使用sed和awk的组合
sed -e 's/^"//;s/","/\t/g;s/"//g' Input.csv| awk -F'\t' '{print$2}'
或
两者都可以通过更改awk列号来打印每一列。使用提供的副本,您也可以快速得到答案:awk-v FPAT='[^,]*|“[^”]+“{print$2}”file.csv
这里还有一些其他方法:方法1:grep-o”[a-zA-Z()*“fruits.csv
来处理所有需要的字符,方法2:cut-d”,“-f2 fruits.csv | sed's/”/g'
定义一个delimeter-d“,“
,选择一个索引-f2
,用sed删除引号。方法3:sed's/[^,]*,//;s/,.//;s/”/g'fruits.csv
删除第一个逗号之前的所有内容,删除第二个逗号之后的所有内容,包括第二个逗号,删除引号使用提供的副本,你也很快得到了答案:awk-vfpat='[^,]*.“[^”]+“{print$2}”file.csv
这里还有一些其他方法:方法1:grep-o“[a-zA-Z()]”fruits.csv
要加工所有需要的字符,方法2:cut-d”、“-f2 fruits.csv//sed'/g'
定义一个delimeter-d”、
,选择索引-f2
,用sed删除引号。方法3:sed的/[^,]*,/;s/,*/;s//“//g'fruits.csv
删除第一个逗号之前的所有内容,删除第二个逗号之后的所有内容,包括第二个逗号,删除引号