簡體   English   中英

如何將awk命令應用於一定數量的文件?

[英]How to apply a awk command to a certain number of files?

我有X個文件,我有以下命令:

awk ' /'$awk_value'/ {split(FILENAME,a,"-");print a[2]"-"a[3]"-"a[4]","$2","$3}' /xxx/xxx/all_my_files > /xxx/xxx/xxx/TEST.txt

但是例如,如果我有120個文件...我如何僅將此命令應用於最后七個文件?

您可以使用tail命令,然后使用xargs將輸出用作參數列表。

ls /xxx/xxx/my_files*.txt | tail -7 | 
    xargs awk -v awk_value="$awk_value" '$0 ~ awk_value {split(FILENAME,a,"-");print a[2]"-"a[3]"-"a[4]","$2","$3}' > /xxx/xxx/xxx/TEST.txt

假設“后7個”基於ls命令可以產生的順序(例如,按文件名排序,按修改時間排序)。

還要注意使用-v選項將shell變量轉換為awk變量,而不是使用串聯方法(如果$awk_value包含空格,則該方法$awk_value -您應始終雙引號以防止出現這種情況) )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM