成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Linux文件名字批量修改步驟 Linux修改文件名的方法

瀏覽:186日期:2023-07-12 14:12:32

在Linux環(huán)境下修改文件名可以有不同的命令方式,比如rename、mv都可以進(jìn)行修改,如果用戶(hù)正在了解這方面的知識(shí),可以閱讀下文了解Linux修改文件名以及批量修改文件名的方法。

對(duì)于單個(gè)的文件,可以直接使用命令,那如果有大量的類(lèi)似格式的文件名需要修改成其他格式的,該如何呢?

比如某次測(cè)試后,保存的文件為 Lan1.txt,Lan2.txt,……Lan100.txt

這一百個(gè)文件需要在前面添加前綴變成類(lèi)似 ch7_Lan1.txt,如果你還想使用mv來(lái)一個(gè)一個(gè)多痛苦啊。

當(dāng)前文件夾下,文件修改有四種方式:

1、使用while Loop加${//}來(lái)實(shí)現(xiàn)Lan到ch7_Lan的替換。

01find . -name "Lan*txt" -type f | read files02do03new=04mv05done復(fù)制代碼find . -name "Lan*txt" -type f | read filesdonew=mvdone

2、充分利用awk的分隔符功能來(lái)實(shí)現(xiàn):

01ls *Lan* | awk 'BEGIN{FS="Lan";OFS="ch7_Lan"}{printf "mv "$0" ";$1=$1;print $0}' | sh復(fù)制代碼ls *Lan* | awk 'BEGIN{FS="Lan";OFS="ch7_Lan"}{printf "mv "$0" ";$1=$1;print $0}' | sh

首先,修改FS和OFS,輸入和輸出的分隔符。

其次,使用awk中的命令,拼接“mv Lan1.txt ch7_Lan1.txt”這條命令。

最后,使用|sh來(lái)執(zhí)行一個(gè)shell命令來(lái)完成mv動(dòng)作。

其中,$1=$1是必須的,這個(gè)是完成Lan===> ch7_Lan的關(guān)鍵(其實(shí)是可以使用$2=$2等來(lái)替換,只要一個(gè)賦值動(dòng)作而已)

奇怪的是,難道沒(méi)有賦值動(dòng)作,分隔符的改變就不能檢測(cè)出來(lái)么?

3、使用awk的內(nèi)置命令,gsub和system來(lái)實(shí)現(xiàn)替換和命令執(zhí)行。

01ls "*Lan*" | awk '{org=$0;gsub("Lan", "ch7_Lan");system("mv "org" "$1)}'復(fù)制代碼ls "*Lan*" | awk '{org=$0;gsub("Lan", "ch7_Lan");system("mv "org" "$1)}'

首先保存原始的數(shù)據(jù)。

其次修改 Lan為 ch_Lan

最后執(zhí)行mv動(dòng)作

其中,最后system命令"mv "org"" 需要使用""來(lái)標(biāo)記。

而且org也需要"",并且不能使用$org

1、對(duì)于awk命令中的變量,不需要用$來(lái)引用。

2、在system()中,變量需要使用""來(lái)標(biāo)識(shí),否則就被當(dāng)成字符串來(lái)處理。

3、如果對(duì)變量進(jìn)行$來(lái)進(jìn)行引用,就會(huì)出現(xiàn)兩種情況:

3.1、正常情況下,可以被當(dāng)成位置參數(shù)來(lái)引用。比如 NF表示當(dāng)前行的記錄個(gè)數(shù)。比如echo "a b c d" | awk '{print NF, $NF}',這個(gè)會(huì)打印兩個(gè)變量,第一個(gè)是NF本身,其值為4;第二個(gè)是第四個(gè)位置參數(shù),也就是$4,也就是d

3.2、非正常情況下:

3.2.1、如果變量本身就是個(gè)字符串。比如echo "a b c d" | awk '{va=“varA“;print va, $va}',因?yàn)楹笠粋€(gè)參數(shù)$va,由于va是個(gè)字符串,因此$va打印的就是$0

3.2.2、如果變量本身就是個(gè)數(shù)字,但是該值大于NF。 比如echo "a b c d" | awk '{va="varA";vb=6;print va, $va, vb, $vb, 1}',因?yàn)?vb相當(dāng)于是$6,但是位置參數(shù)$6沒(méi)有,因此打印的就是個(gè)空字符。

01[martin@TSPerPacketsTest]$ echo "a b c d" | awk '{print NF, }'024 d03[martin@TSPerPacketsTest]$ echo "a b c d" | awk '{va="varA";print va, }'04varA a b c d05[martin@TSPerPacketsTest]$ echo "a b c d" | awk '{va="varA";vb=6;print va, , vb, , 1}'06varA a b c d 6 1復(fù)制代碼[martin@TSPerPacketsTest]$ echo "a b c d" | awk '{print NF, }'4 d[martin@TSPerPacketsTest]$ echo "a b c d" | awk '{va="varA";print va, }'varA a b c d[martin@TSPerPacketsTest]$ echo "a b c d" | awk '{va="varA";vb=6;print va, , vb, , 1}'varA a b c d 6 1

4、使用sed中的s來(lái)進(jìn)行替換,然后使用e命令來(lái)執(zhí)行:

01[martin@TSPerPacketsTest]$ ls *Lan* | sed -r -n 's/(.*)Lan(.*)/mv & 1ch_Lan2/e'復(fù)制代碼[martin@TSPerPacketsTest]$ ls *Lan* | sed -r -n 's/(.*)Lan(.*)/mv & 1ch_Lan2/e'

關(guān)于sed的選項(xiàng),使用 -r和 -n

-r 來(lái)啟用后續(xù)可以使用 command,比如 mv

-n 來(lái)關(guān)閉 patten space中內(nèi)容的顯示。

關(guān)于sed的 command,使用e。如此在使用s命令完成 pattern space中 Lan到 ch7_Lan的修改后,啟動(dòng)shell來(lái)執(zhí)行 pattern space中的 mv指令。

如果這里使用 p,標(biāo)記僅僅顯示 pattern space中的指令而已。

如果對(duì)于某目錄下的所有文件,進(jìn)行文件名修改,有兩種方式:

1、匯集awk的 FS/OFS和 gsub/system來(lái)實(shí)現(xiàn)。有點(diǎn)類(lèi)似于綜合上述2,3兩種方式。

01[martin@TSPerPacketsTest]$ find . -name "*Lan*" -type f | awk 'BEGIN{FS="/";OFS="/"}{org=$0;gsub("Lan", "ch7_Lan", );system("echo "org" "$0)}'復(fù)制代碼[martin@TSPerPacketsTest]$ find . -name "*Lan*" -type f | awk 'BEGIN{FS="/";OFS="/"}{org=$0;gsub("Lan", "ch7_Lan", );system("echo "org" "$0)}'

為了實(shí)現(xiàn)所有目錄下的文件名進(jìn)行修改,但是又不影響路徑上文件夾名。

首先,標(biāo)記FS和OFS都為"/"。

其次,使用gsub時(shí)候,指定僅僅修改當(dāng)前行中最后一個(gè)記錄,使用$NF來(lái)指定。

當(dāng)然,對(duì)于FS和OFS的指定,可以不放置在 BEGIN中實(shí)現(xiàn),比如:

01[martin@TSPerPacketsTest]$ find . -name "*Lan*" -type f | awk -vF=/ -vOFS=/ '{org=$0;gsub("Lan", "ch7_Lan", );system("echo "org" "$0)}'02[martin@TSPerPacketsTest]$ find . -name "*Lan*" -type f | awk -F/ -vOFS=/ '{org=$0;gsub("Lan", "ch7_Lan", );system("echo "org" "$0)}'復(fù)制代碼[martin@TSPerPacketsTest]$ find . -name "*Lan*" -type f | awk -vF=/ -vOFS=/ '{org=$0;gsub("Lan", "ch7_Lan", );system("echo "org" "$0)}'[martin@TSPerPacketsTest]$ find . -name "*Lan*" -type f | awk -F/ -vOFS=/ '{org=$0;gsub("Lan", "ch7_Lan", );system("echo "org" "$0)}'

2、或者使用 sed。

01[martin@TSPerPacketsTest]$ find . -name "*Lan*" -type f | sed -r -n 's/(.*)([^/]*)Lan([^/]*)$/mv & 12ch7_Lan3/e'復(fù)制代碼[martin@TSPerPacketsTest]$ find . -name "*Lan*" -type f | sed -r -n 's/(.*)([^/]*)Lan([^/]*)$/mv & 12ch7_Lan3/e'

其中的各個(gè) option和 command參數(shù),上述都已經(jīng)有介紹了。

這里,針對(duì)文件夾名和文件名,使用了簡(jiǎn)單的sed內(nèi)置的正則表達(dá)式來(lái)進(jìn)行匹配而已,來(lái)實(shí)現(xiàn)僅僅對(duì)文件名的修改。

以上步驟在Linux修改文件名以及批量修改文件名的實(shí)現(xiàn)方式,是在shell中使用find、exec、xargs、mv命令組合批量替換文件名中的字符串。

標(biāo)簽: Linux系統(tǒng)
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产综合色产在线精品| 欧美色图首页| 国产一在线精品一区在线观看| 欧美午夜精品一区二区三区| 亚洲一区二区三区四区不卡| 亚洲黑丝一区二区| 国产日韩精品一区| 懂色av噜噜一区二区三区av| 久久亚洲影院| 亚洲不卡av一区二区三区| 99精品久久久| 亚洲欧美怡红院| 欧美涩涩视频| 久久夜色精品国产欧美乱极品| 国产成a人无v码亚洲福利| 欧美日韩国产精品自在自线| 卡一卡二国产精品| 在线精品亚洲一区二区不卡| 肉丝袜脚交视频一区二区| 亚洲欧美春色| 亚洲自拍偷拍网站| 国产精品日韩欧美一区二区| 亚洲免费成人av| 国产一区二区中文| 中文字幕在线不卡一区| 狠狠干成人综合网| 国产精品污www在线观看| 欧美视频亚洲视频| 国产精品久久久久久久午夜片 | 欧美中文字幕亚洲一区二区va在线| 亚洲成人7777| 麻豆av一区二区三区| 婷婷中文字幕一区三区| 日本道免费精品一区二区三区| 麻豆成人av在线| 欧美三级电影在线看| 精品在线播放午夜| 欧美精品日韩一区| 国产成人综合在线播放| 欧美精品一区二区不卡| 欧美精品导航| 亚洲免费观看视频| 久久久久久久久久码影片| 免费一级片91| 欧美一级黄色大片| 91免费观看视频在线| 一区在线观看免费| 噜噜噜91成人网| 激情综合网av| 精品国产sm最大网站免费看| 色综合天天综合网国产成人综合天 | 久久午夜老司机| 黄色欧美日韩| 丝袜诱惑亚洲看片| 欧美高清视频www夜色资源网| www.一区二区| 亚洲精品国产第一综合99久久| 久久综合狠狠| 国产精品香蕉一区二区三区| 久久久久久综合| 亚洲人成人一区二区三区| 亚洲影视在线播放| 欧美三级乱人伦电影| 成人午夜免费视频| 国产精品沙发午睡系列990531| av成人天堂| 久久精品国产精品亚洲综合| 精品国产91洋老外米糕| 18成人免费观看视频| 日本欧美大码aⅴ在线播放| 在线不卡中文字幕播放| 你懂的成人av| 亚洲国产aⅴ成人精品无吗| 欧美精品一二三| 国产精品国码视频| 视频一区视频二区中文| 在线观看91精品国产麻豆| 91伊人久久大香线蕉| 亚洲九九爱视频| 欧美色综合久久| 91麻豆国产在线观看| 亚洲最快最全在线视频| 7777精品伊人久久久大香线蕉 | 91极品视觉盛宴| 99久免费精品视频在线观看| 亚洲最大成人综合| 91精品久久久久久久99蜜桃| 国产精品swag| 久久国产福利国产秒拍| 久久久噜噜噜久久人人看| 国产欧美日韩综合一区在线观看 | 亚洲国产电影| 久久66热偷产精品| 中日韩av电影| 欧美日韩一区高清| 亚洲视频精品| 国产一区二区调教| 亚洲男人天堂一区| 日韩精品中文字幕一区| 国产人成精品一区二区三| 丁香激情综合五月| 亚洲第一成人在线| 久久久久久电影| 色999日韩国产欧美一区二区| 91丨九色丨黑人外教| 亚洲成人av一区二区| 久久久综合网站| 在线视频一区二区三| 精品69视频一区二区三区Q| 国产精品一色哟哟哟| 亚洲综合免费观看高清在线观看| 日韩免费福利电影在线观看| 另类激情亚洲| 激情av一区| 国产成人精品免费网站| 日韩精品欧美成人高清一区二区| 久久噜噜亚洲综合| 欧美日韩免费高清一区色橹橹 | 91精品国产综合久久婷婷香蕉| 中文亚洲字幕| 91在线视频在线| 久久99国产精品免费| 一区二区日韩电影| 国产网站一区二区| 91精品国产综合久久久久| 久久久久一区二区三区| 国产精品久久| 成人午夜视频在线观看| 美女看a上一区| 亚洲精品国产成人久久av盗摄| 久久日韩精品一区二区五区| 在线中文字幕一区| 国产欧美日韩伦理| 国产精品hd| 91网站在线观看视频| 国产麻豆成人精品| 视频一区中文字幕| 亚洲精品视频在线看| 久久久蜜桃精品| 日韩一二在线观看| 精品1区2区3区| 色悠久久久久综合欧美99| 亚洲国产精品日韩| 91欧美激情一区二区三区成人| 国产在线精品一区二区夜色| 亚洲成av人**亚洲成av**| 国产精品免费视频一区| 欧美mv和日韩mv的网站| 欧美色视频在线| 色拍拍在线精品视频8848| 亚洲在线观看| 国产亚洲欧美一区二区| 亚洲激情综合| 伊人久久亚洲影院| 欧美人成在线| 91美女片黄在线观看| 成人av在线一区二区| 国产成人av一区二区三区在线| 国内成人自拍视频| 日本不卡的三区四区五区| 亚洲小少妇裸体bbw| 亚洲免费在线观看视频| 国产精品久久久久久一区二区三区| 国产亚洲人成网站| 26uuu精品一区二区| 精品理论电影在线观看| 欧美一区二区三区不卡| 欧美一个色资源| 欧美刺激午夜性久久久久久久| 欧美精品tushy高清| 欧美日韩二区三区| 欧美色窝79yyyycom| 欧洲精品一区二区| 91搞黄在线观看| 久久一区亚洲| 一本到不卡免费一区二区| 翔田千里一区二区| 欧美中日韩免费视频| 美日韩免费视频| 91成人免费网站| 欧美精品在线一区二区| 91精品在线免费观看| 日韩一区二区免费在线电影| 精品国产乱码久久久久久蜜臀| 精品欧美一区二区三区精品久久| 欧美精品一区二区在线播放| 久久无码av三级| 国产精品色一区二区三区| 国产精品久久久久一区 | 国产精品网站在线| 国产精品情趣视频| 日韩美女啊v在线免费观看| 亚洲精品视频在线观看网站| 亚洲一区二区欧美日韩| 日本欧美肥老太交大片| 蜜桃精品视频在线观看| 国产在线视频一区二区| 成人三级伦理片| 欧美日韩国产免费观看| 好看的亚洲午夜视频在线|