新线路的grep输出



我正在开发一个脚本,该脚本解析打开的xml文档中的信息,并解析脚本的输出以提供csv输出。

我被困在最后一个栏上了。

find /media/path/to/files -type f -iname '*.xlsx' -exec perl parseXML.py {} ; 
| grep -v 'Document name|creator|lastModified|Printed|created|modified' 
| tr 'n' '.'; echo n 
>> list.csv

这个输出的问题是,我最终得到了一个所有文档的庞大列表,并且在python或perl中对其进行排序似乎超出了我的知识水平。

我希望有一种方法可以通过使用sed 来避免偏移中出现这种情况

(find /media/E01880-0-CH5-W001/Working/E01880-4-CH5-E001/ED/ -type f -iname '*.xlsx' -exec perl parseXML.py {} ; | grep 'Document name|creator|lastModified|Printed|created|modified' | tr 'n' '.'; echo )n >> list.csv

遗憾的是,这只是删除了包含修改信息的行。

最后,今天晚上我尝试使用sed和一些正则表达式来更改输出

cat PleaseWork.csv | sed  -i 's/modified[^"rn]*./&\n/g' >> NewFile.csv

理论上,语法应该用匹配的表达式和新行替换修改后的字符和任何字符,直到一个句号,但我收到了一个sed错误,没有输入文件,我想我现在已经盯着屏幕看够了。

请帮忙。

我正在使用谷歌的snortdlp代码:

http://snortdlp.googlecode.com/svn-history/r115/trunk/src/python/read_open_xml.pl

如果我正确解释了您的问题,您将尝试为所有匹配"Document name"、"creator"等的文件输出整行(而不是换行),并为匹配"modified"的行打印整行(和换行)。只需跳过grep并使用awk即可:

awk '/Document name|creator/{printf "%s.", $0} /modified/'

(为了清晰起见,我缩短了匹配时间——根据需要添加其他标签。)

相关内容

  • 没有找到相关文章

最新更新