将grep的结果打印到csv文件

时间:2015-06-09 04:36:04

标签: linux grep

我正在尝试将grep的结果打印到CSV文件中。当我在我的目录中运行此命令grep FILENAME *时,我得到了这个结果:B140509184-#-02Jun2015-#-11:00-#-12:00-#-LT4-UGW-MAJAZ-#-I-#-CMAP-#-P-45088966.lif: FILENAME A20150602.0835+0400-0840+0400_DXB-GGSN-V9-PGP-16.xml

我想要的是将FILENAME部分打印到csv。以下是我到目前为止所尝试的内容,我在打印结果方面有点迷失

BASE_DIR=/appl/virtuo/var/loader/spool/umtsericssonggsn_2013a/2013A/good

cd ${BASE_DIR}

grep FILENAME *
#grep END_TIME *
#grep START_TIME *

#my $Filename = grep FILENAME *;
print $Filename;


#$ awk '{print;}' employee.txt

#echo "$Filename :"

档案样本

measInfoId 140509184
GP 3600
START_DATE 2015-06-02



Output should be 140509184 3600 2015-06-02, in columns of a csv file

1 个答案:

答案 0 :(得分:1)

更新了答案

如果您只想要以GPSTART_DATEmeasInfoId开头的行,则可以修改下面的awk命令,如下所示:

awk '/^GP/ || /^START_DATE/ || /^measInfoId/ {print $2}' file

原始答案

我不确定你到底想要做什么,但这可能会有所帮助......

如果输入文件名为file,则包含以下内容:

measInfoId 140509184
GP 3600
START_DATE 2015-06-02

此命令将在每行打印第二个字段:

awk '{print $2}' file
140509184
3600
2015-06-02

然后,在此基础上,此命令将把所有这些放在一行:

awk '{print $2}' file | xargs
140509184 3600 2015-06-02

然后这个会将空格翻译成逗号:

awk '{print $2}' file | xargs | tr " " ","
140509184,3600,2015-06-02

如果您想对目录中的所有文件执行此操作,则可以执行以下操作:

for f in *; do
   awk '{print $2}' "$f" | xargs | tr " " ","
done > result.cv