我想在find命令返回的zip文件上使用awk命令,并将zip文件中的某些特定列转储到与zip文件具有相同层次结构的新文件中。在压缩文件上使用awk查找命令
例如,我有一个像结构:
/2017/05/25/GAURshvol20170525.txt.zip
/2017/05/26/GAURsh20170526.txt.zip
/2017/05/26/GUPTsh20170526.txt.zip
/2017/05/26/GUPTshvol20170526.txt.zip
/2017/05/26/GAURshvol20170526.txt.zip
/2017/05/30/GAURshvol20170530.txt.zip
/2017/05/30/GAURsh20170530.txt.zip
/2017/05/30/GUPTsh20170530.txt.zip
/2017/05/30/GUPTshvol20170530.txt.zip
/2017/05/31/GAURsh20170531.txt.zip
/2017/05/31/GUPTsh20170531.txt.zip
/2017/05/31/GUPTshvol20170531.txt.zip
而且在压缩文件内的每个文件我遇到了下列数据:
20170601|A|69636|122548|Z
20170601|AA|67544|128724|Z
20170601|AAAP|453|1306|Z
20170601|AAC|5840|8962|Z
20170601|AADR|1925|1925|Z
20170601|AAL|289708|344209|Z
20170601|AAMC|10|15|Z
20170601|AAME|100|200|Z
20170601|AAN|44851|72461|Z
20170601|AAOI|42836|82801|Z
20170601|AAON|3417|4127|Z
20170601|AAP|71212|85414|Z
20170601|AAPL|528135|1213451|Z
20170601|AAT|7742|10104|Z
20170601|AAU|2200|2700|Z
20170601|AAV|2746|6797|Z
20170601|AAWW|4662|7298|Z
20170601|AAXJ|54464|57764|Z
20170601|AAXN|45497|48611|Z
现在,我想取从上面的一些特定的列,并将这些转储到具有相同类型层次结构的新目录中的新文件中,就像我已经将数据转储到目录abcd中一样,那么层次结构应该类似于
gaur/2017/05/25/GAURshvol20170525.txt
gaur/2017/05/26/GAURsh20170526.txt
gaur/2017/05/26/GUPTsh20170526.txt
gaur/2017/05/26/GUPTshvol20170526.txt
gaur/2017/05/26/GAURshvol20170526.txt
gaur/2017/05/30/GAURshvol20170530.txt
gaur/2017/05/30/GAURsh20170530.txt
gaur/2017/05/30/GUPTsh20170530.txt
gaur/2017/05/30/GUPTshvol20170530.txt
gaur/2017/05/31/GAURsh20170531.txt
gaur/2017/05/31/GUPTsh20170531.txt
gaur/2017/05/31/GUPTshvol20170531.txt
我想下面的命令,(目前我的PWD是2017年和野牛父目录):
find -name 'GAUR*.zip' -exec awk -F"|" '{print $2,$3 > (FILENAME "-new")}' {} +
其导致无限期等待。我更喜欢在查找部分使用正则表达式,如果有人可以请,因为我用过。
find . -regex '.^GAUR*\.\(zip\|\)'
但失败。
检查的'组合用'-exec'选项调用'zcat | awk'找到''可以工作。 –