在文件中查找以fix string开头的所有单词?

时间:2013-08-27 06:32:10

标签: unix solaris rhel

如何找到以$

开头的csv文件中的所有单词

我的文件就像:

Test1,$Var1,$varCab1,$Vargab1,Comment1
Test2,$Var2,$varCab2,$Vargab2,Comment2
Test3,$Var3,$varCab3,$Vargab3,Comment3

作为我想要的输出

$Var1
$varCab1
$Vargab1
$Var2
$varCab2
$Vargab2
$Var3
$varCab3
$Vargab3

3 个答案:

答案 0 :(得分:1)

尝试关注(grep -oE '\$\w+' filename):

$ cat 1.csv
Test1,$Var1,$varCab1,$Vargab1,Comment1
Test2,$Var2,$varCab2,$Vargab2,Comment2
Test3,$Var3,$varCab3,$Vargab3,Comment3
$ grep -oE '\$\w+' 1.csv
$Var1
$varCab1
$Vargab1
$Var2
$varCab2
$Vargab2
$Var3
$varCab3
$Vargab3

使用awk

$ awk -F, '{ for(i=1;i<=NF;i++) if ($i ~ /\$/) print $i; }' 1.csv
$Var1
$varCab1
$Vargab1
$Var2
$varCab2
$Vargab2
$Var3
$varCab3
$Vargab3

答案 1 :(得分:0)

使用trgrep

$ tr ',' '\n' < inputfile | grep "^[$]"
$Var1
$varCab1
$Vargab1
$Var2
$varCab2
$Vargab2
$Var3
$varCab3
$Vargab3

答案 2 :(得分:0)

使用perl

perl -ne 'for (m/\$\w+/g) { print $_, "\n" }' < inputfile

甚至更短:

perl -ne 'print map("$_\n", m/\$\w+/g)' < inputfile

说明:

  • 正则表达式\$\w+匹配$后跟一个或多个单词字符
  • m//g表达式返回匹配列表。
  • perl -ne为输入中的每个文件运行表达式,在$_中插入行,然后由m//g表达式使用。