簡體   English   中英

將sed集成到find xargs copy shell命令中

[英]integrate sed into find xargs copy shell command

我有一個腳本,可以將所有文件復制到一個文件夾中,然后將其移動到新文件夾中……我用來執行此操作的行如下所示

find "$SOURCEFOLDER" -type f | xargs -I {} ln {} "$ENDFOLDER/$TR_NEW_TORRENT_NAME/${basename}"

而且效果很好

事情是我也想使用sed從新文件的基本名稱中刪除任何括號,但是我不知道如何合並sed命令

sed -e 's/\[[^][]*\]//g' FILE

我將如何去做呢? 有沒有更好或更簡單的方法來完成我想要的所有事情?

我相信以下將為您工作:

find "$SOURCEFOLDER" -type f -exec bash -c "sed -e 's/\\[[^][]*\\]//g' {} ; xargs -I {} ln {} "$ENDFOLDER/$TR_NEW_TORRENT_NAME/${basename}" \\;

想法是通過以下方式組合命令:

另一種方法是使用兩個-exec

find "$SOURCEFOLDER" -type f -exec sed -e 's/\[[^][]*\]//g' {}\; -exec ln {} "$ENDFOLDER/$TR_NEW_TORRENT_NAME/${basename}" \;

我希望這將有所幫助。

您可以使用-execdir的選項find這個重命名並避免xargs干脆:

find "$SOURCEFOLDER" -type f -execdir bash -c 'sed "s/\[[^][]*\]//g" <<< "$1";
    ln "$1" "$ENDFOLDER/$TR_NEW_TORRENT_NAME/${basename}"' - '{}' \;

暫無
暫無

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

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