簡體   English   中英

linux find -exec兩個命令並連接在同一行

[英]linux find -exec two commands and concatenate on same line

我有以下命令:

find ~ -maxdepth 3 -type f -name description -exec stat -c "%n --RDD-- %z" {} \; -exec head -1 {} \;

這將找到所有描述文件3個文件夾,並輸出類似以下內容:

/home/user/public_html/.git/description --RDD-- 2014-12-17 17:02:09.347983909 +0000
Some description
/home/user/public_sub/.git/description --RDD-- 2014-12-17 17:02:09.347983909 +0000
Another description

我想串聯兩個執行程序,並得到類似的東西:

/home/user/public_html/.git/description --RDD-- 2014-12-17 17:02:09.347983909 +0000 --RDD-- Some description
/home/user/public_sub/.git/description --RDD-- 2014-12-17 17:02:09.347983909 +0000 --RDD-- Another description

在過去的一天里,我一直在努力做到這一點,但是到目前為止,我還無法弄清楚該如何做。

您可以在stat使用--printf來避免像這樣打印換行符:

find ~ -maxdepth 3 -type f -name description \
      -exec stat --printf="%n --RDD-- %z --ROD-- " {} \; -exec head -1 {} \;

否則,您可以在命令中使用bash -c和命令行:

find ~ -maxdepth 3 -type f -name description -exec bash -c \
     'f="$1"; stat -c "%n --RDD-- %z --ROD-- $(head -1 "$f")" "$f"' - {} \;

暫無
暫無

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

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