[英]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.