shell中對xargs命令傳參進行編輯
以文件解壓為例,將當(dāng)前路徑下的所有g(shù)z文件解壓到同名的log文件中,解壓命令如下所示:
ls *.gz| xargs -n 1 -P 4 -I {} bash -c 'zcat "{}" > $(echo "{}" | sed "s/gz$/log/g")'
執(zhí)行結(jié)果如下圖所示:
命令說明:
xargs -I {}占位的參數(shù)傳遞給后面的bash -c命令以進行復(fù)雜的字符串替換操作。
使用$()引用計算結(jié)果,在括號中完成文件名的編輯。括號中使用"{}"引用傳入的文件名
sed "s/gz$/log/g"將echo傳遞的文件名中末尾的gz替換為log, gz$是正則表達式用于匹配后綴為gz的文件
也可使用下面的命令進行解壓:
ls *.gz| xargs -n 1 -P 4 -I {} bash -c 'zcat "{}" > $(file="{}"; echo ${file::-3}.log)'
${file::-3}表示去掉文件名末尾的三個字符,即".gz"
運行結(jié)果和上述一致:
到此這篇關(guān)于shell中對xargs命令傳參進行編輯的文章就介紹到這了,更多相關(guān)shell xargs傳參內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux命令學(xué)習(xí)之10個網(wǎng)絡(luò)命令和監(jiān)控命令
下面列出來的10個基礎(chǔ)的每個linux用戶都應(yīng)該知道的網(wǎng)絡(luò)和監(jiān)控命令,大家參考使用吧2014-01-01Linux crontab定時執(zhí)行Shell腳本需要執(zhí)行特定的命令時解決思路
今天小編就為大家分享一篇關(guān)于Linux crontab定時執(zhí)行Shell腳本需要執(zhí)行特定的命令時解決思路,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-01-01淺析Shell腳本中的條件判斷[?]與[[?]]的區(qū)別
在編寫?Shell?腳本時,條件判斷是控制腳本流程的重要手段,Shell?提供了多種方式來進行條件判斷,其中[?]和[[?]]是兩種常見的條件測試表達式,下面我們就來看看兩者的區(qū)別吧2024-12-12