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