婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Linux查找處理文件名后包含空格的文件(兩種方法)

Linux查找處理文件名后包含空格的文件(兩種方法)

熱門標簽:宿松高德地圖標注 天津智能外呼系統排名 電銷機器人加盟多少錢 4層電梯外呼控制系統設計 貴陽400電話到哪里去辦理 400電話申請找 申請400電話有什么用 網絡電話外呼系統撥號軟件 汨羅代理外呼系統

當Linux下文件名中出現空格這類特殊情況話,如何查找或確認那些文件名后有空格呢? 又怎么批量替換處理掉這些空格呢? 

方法1:

輸入文件名后使用Tab鍵,如果使用Tab鍵后面出現\ \ \這樣的可見字符,那么該文件名包含空格。當然,這個方法弊端很大,例如,效率低下,不能批量查找,只有當你懷疑某個文件名后有空格,這個方法才比較湊效。另外,不能查找文件中間包含空格的文件名。如下測試所示: 

[root@DB-Server kerry]# cat >"test.txt "
it is only for test!
[1]+ Stopped   cat > "test.txt "
[root@DB-Server kerry]# cat >"tes t.txt"
it is only for test too!
[2]+ Stopped   cat > "tes t.txt"
[root@DB-Server kerry]# ls test.txt
ls: test.txt: No such file or directory
[root@DB-Server kerry]# ls test
test~  test1.py test.py test.sh test.txt 
[root@DB-Server kerry]# ls test.txt\ \ \ \ 
test.txt 
[root@DB-Server kerry]# ls tes
test~  test1.py test.py test.sh tes t.txt test.txt 


方法2:

使用find命令查找文件名中包含空格的文件。 

[root@DB-Server kerry]# find . -type f -name "* *" -print
./test.txt 
./tes t.txt 

那么如何將這些空格替換掉呢?  下面腳本可以替換文件中間的空格,用下劃線替換空格,但是只能替換文件中間的空格,并不能替換文件名后面的空格。如下測試所示: 

find . -type f -name "* *" -print |
while read name; do
na=$(echo $name | tr ' ' '_')
if [[ $name != $na ]]; then
mv "$name" "$na"
fi
done 


上面腳本只能將文件名中間有空格的替換為下劃線。那么如何解決文件名后有空格的情況呢? 可以用其它shell腳本實現,如下所示:

[root@DB-Server kerry]# rm -rf *
[root@DB-Server kerry]# cat >"test.txt "
12
[root@DB-Server kerry]# cat >"tes t.txt"
12
[root@DB-Server kerry]# find . -type f -name "* *" -print
./test.txt 
./tes t.txt
[root@DB-Server kerry]# for file in *; do mv "$file" `echo $file | tr ' ' '_'` ; done
[root@DB-Server kerry]# find . -type f -name "* *" -print
[root@DB-Server kerry]# ls -lrt
total 8
-rw-r--r-- 1 root root 0 Nov 13 10:04 test.txt
-rw-r--r-- 1 root root 0 Nov 13 10:04 tes_t.txt

如上所示,雖然文件名中間的空格被替換為了下劃線,但是后面的空格沒有替換為下劃線,而是將那些空格直接截斷了。Why?下面使用sed命令也是如此 

[root@DB-Server kerry]# rm -rf *
[root@DB-Server kerry]# cat >"test.txt "
12
[root@DB-Server kerry]# cat >"tes t.txt"
12
[root@DB-Server kerry]# find . -type f -name "* *" -print
./test.txt 
./tes t.txt
[root@DB-Server kerry]# for i in *' '*; do mv "$i" `echo $i | sed -e 's/ /_/g'`; done
[root@DB-Server kerry]# find . -type f -name "* *" -print
[root@DB-Server kerry]# ls -lrt
total 8
-rw-r--r-- 1 root root 0 Nov 13 09:29 test.txt
-rw-r--r-- 1 root root 0 Nov 13 09:29 tes_t.txt
[root@DB-Server kerry]# 
[root@DB-Server kerry]#


其實,這個是因為讀取文件名是$file 與"$file"是不同的,$file不會識別文件名后面的空格,而"$file"才會失敗文件名后面的空格。所以上面腳本其實只是取巧而已。 

[root@DB-Server kerry]# rm -rf *;
[root@DB-Server kerry]# cat >"test.txt "
123
[root@DB-Server kerry]# for file in *; do echo "$file"; echo "$file" | wc -m ; done;
test.txt 
13
[root@DB-Server kerry]# for file in *; do echo $file; echo $file | wc -m ; done;
test.txt
9
[root@DB-Server kerry]# 


所以,正確的替換空格的命令應該為如下:

方案1: 

[root@DB-Server kerry]# rm -rf *
[root@DB-Server kerry]# cat >"test.txt "
123456
[root@DB-Server kerry]# find . -type f -name "* *" -print
./test.txt 
[root@DB-Server kerry]# for file in *; do mv "$file" `echo "$file" | tr ' ' '\n'` ; done
[root@DB-Server kerry]# find . -type f -name "* *" -print
[root@DB-Server kerry]# ls test.txt
test.txt
[root@DB-Server kerry]# 

方案2: 

[root@DB-Server kerry]# 
[root@DB-Server kerry]# rm -rf *
[root@DB-Server kerry]# cat >"test.txt "
123456
[root@DB-Server kerry]# for file in *' '*; do mv "$file" `echo "$file" | sed -e 's/ /n/g'`; done
[root@DB-Server kerry]# find . -type f -name "* *" -print 

但是對于文件名中間包含空格的情況,上面兩個腳本都無法完美解決。如下所示:

[root@DB-Server kerry]# 
[root@DB-Server kerry]# rm -rf *
[root@DB-Server kerry]# cat >"tes t.txt"
123456
[root@DB-Server kerry]# for file in *; do mv "$file" `echo "$file" | tr ' ' '_'` ; done
[root@DB-Server kerry]# find . -type f -name "* *" -print
[root@DB-Server kerry]# ls -lrt 
total 8
-rw-r--r-- 1 root root 7 Nov 13 16:00 tes_t.txt
[root@DB-Server kerry]# 
[root@DB-Server kerry]# rm -rf *
[root@DB-Server kerry]# cat >"tes t.txt"
123456
[root@DB-Server kerry]# cat >"test.txt "
654321
[root@DB-Server kerry]# find . -type f -name "* *" -print
./test.txt 
./tes t.txt
[root@DB-Server kerry]# for file in *; do mv "$file" `echo "$file" | tr ' ' '_'` ; done
[root@DB-Server kerry]# find . -type f -name "* *" -print
[root@DB-Server kerry]# ls -lrt
total 12
-rw-r--r-- 1 root root 0 Nov 13 15:59 tes_t.txt
-rw-r--r-- 1 root root 7 Nov 13 15:59 test.txt____

當然對于這兩種特殊情況,上面腳本都不能一起處理,如上所示,后面的空格會被替換成了下劃線。這反而不是我們想要的,反而最上面的那兩種腳本,可以誤打誤撞的解決這兩種問題。當然讓前提是你得知其然知其所以然!

您可能感興趣的文章:
  • Linux刪除文件提示Operation not permitted的處理辦法
  • Linux文件處理常用命令操作技巧
  • Linux下對各種壓縮文件的處理方法
  • Windwos下使用winscp和批處理實現通過SSH端口上傳文件到Linux服務器上
  • 在 Linux 中不使用 CD 命令進入目錄/文件夾的方法
  • Linux下利用unzip命令如何解壓多個文件詳解
  • Linux一行命令處理批量文件詳解

標簽:連云港 臨沂 烏蘭察布 贛州 昌都 海北 撫州 廣東

巨人網絡通訊聲明:本文標題《Linux查找處理文件名后包含空格的文件(兩種方法)》,本文關鍵詞  Linux,查找,處理,文件,名后,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux查找處理文件名后包含空格的文件(兩種方法)》相關的同類信息!
  • 本頁收集關于Linux查找處理文件名后包含空格的文件(兩種方法)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    狠狠网亚洲精品| 亚洲精品视频在线| 日本高清不卡一区| 成人午夜伦理影院| 国产精品77777| 精品亚洲免费视频| 久久99久久久欧美国产| 日本成人在线不卡视频| 日韩国产在线一| 香蕉成人伊视频在线观看| 亚洲国产精品久久艾草纯爱| 一区二区三区在线播放| 亚洲精品国产精品乱码不99| 亚洲美女一区二区三区| 亚洲综合一区二区三区| 午夜伦欧美伦电影理论片| 丝袜亚洲另类丝袜在线| 精品一区二区在线视频| 国产精品一区二区你懂的| 国产美女av一区二区三区| 国产激情视频一区二区在线观看| 粉嫩aⅴ一区二区三区四区五区 | 亚洲一区二区三区四区在线| 亚洲女人小视频在线观看| 亚洲国产精品一区二区尤物区| 亚洲国产aⅴ天堂久久| 美女在线观看视频一区二区| 国产一区二区三区av电影 | 亚洲色图.com| 午夜精品爽啪视频| 韩国精品在线观看| 一本久久a久久免费精品不卡| 欧洲中文字幕精品| 精品久久一区二区| 中文字幕亚洲综合久久菠萝蜜| 日韩毛片精品高清免费| 奇米影视一区二区三区小说| 99这里只有久久精品视频| 欧美视频一区二区三区| 国产亚洲成aⅴ人片在线观看 | 日本91福利区| 成人av小说网| 欧美顶级少妇做爰| 国产精品青草综合久久久久99| 亚洲h动漫在线| thepron国产精品| 欧美变态口味重另类| 亚洲精品一卡二卡| 国产一区二区三区日韩| 欧美精三区欧美精三区| 国产精品毛片a∨一区二区三区| 日韩激情视频网站| 欧美体内she精高潮| 国产欧美综合在线| 蜜臀久久99精品久久久久久9 | 韩国成人精品a∨在线观看| 91国在线观看| 亚洲色图.com| www.欧美亚洲| 中文av一区特黄| 国精产品一区一区三区mba视频 | 日本视频中文字幕一区二区三区 | 亚洲人成网站色在线观看| 国产在线麻豆精品观看| 欧美日韩国产免费一区二区| 亚洲激情欧美激情| 99久久精品免费看| 国产精品情趣视频| 波多野结衣欧美| 国产日韩欧美不卡在线| 国产精品一卡二卡在线观看| 精品国产免费人成在线观看| 日韩av成人高清| 欧美日韩精品一区二区天天拍小说 | 日韩精彩视频在线观看| 精品视频1区2区3区| 一区二区三区av电影| 色综合激情久久| 一区二区三区精品| 色狠狠av一区二区三区| 亚洲欧美另类小说视频| 91精品1区2区| 视频一区二区三区中文字幕| 欧美日韩精品二区第二页| 午夜精品123| 日韩欧美综合在线| 国产精品996| 亚洲精品videosex极品| 欧美影院一区二区| 日本不卡中文字幕| 亚洲国产精品高清| 欧美午夜电影在线播放| 天天免费综合色| 精品粉嫩超白一线天av| 高清成人免费视频| 一区二区三区高清在线| 欧美二区三区的天堂| 国产伦精品一区二区三区在线观看| 国产欧美日韩精品在线| 一本久久精品一区二区| 日日夜夜精品免费视频| 久久久99精品免费观看不卡| eeuss国产一区二区三区| 日韩精品电影一区亚洲| 国产女同性恋一区二区| 日本精品一级二级| 麻豆极品一区二区三区| 国产精品久久久久久亚洲毛片| 91日韩在线专区| 蜜桃av噜噜一区| 国产精品久久久久影院亚瑟| 555夜色666亚洲国产免| 国产电影一区在线| 婷婷久久综合九色综合绿巨人 | 亚洲另类中文字| 日韩三级av在线播放| 91视频在线观看| 久久精品国产网站| 一区二区三区在线免费视频| 26uuu色噜噜精品一区| 色婷婷综合久久| 国产精品影视在线观看| 午夜伦欧美伦电影理论片| 亚洲国产精品二十页| 日韩一级视频免费观看在线| 91免费在线视频观看| 久久国产精品免费| 日日嗨av一区二区三区四区| 国产精品不卡一区| 久久蜜臀中文字幕| 在线不卡免费欧美| 欧美在线观看视频一区二区| 国产91丝袜在线播放九色| 日韩精品视频网站| 亚洲国产日韩av| 亚洲女与黑人做爰| 国产精品国产三级国产aⅴ原创 | 亚洲欧美电影一区二区| 中文一区二区完整视频在线观看 | 色综合天天综合网天天看片| 精彩视频一区二区| 免费人成在线不卡| 性久久久久久久久| 亚洲国产视频一区| 亚洲免费高清视频在线| 国产精品乱码妇女bbbb| 久久天天做天天爱综合色| 精品99999| 精品国产一区二区三区久久影院| 欧美精品自拍偷拍| 欧美一级高清片| 欧美精品久久天天躁| 欧美日韩国产首页在线观看| 欧美日韩mp4| 91精品免费在线观看| 日韩欧美国产三级| 精品999在线播放| 久久久国产午夜精品| 国产网站一区二区| 日韩美女久久久| 亚洲va国产天堂va久久en| 日本美女视频一区二区| 麻豆成人综合网| 久久国产成人午夜av影院| 激情文学综合丁香| 粉嫩aⅴ一区二区三区四区| 91蜜桃网址入口| 欧美日韩精品一区二区三区蜜桃| 日韩一级完整毛片| 国产欧美久久久精品影院| 亚洲欧美二区三区| 日韩精品久久理论片| 久久精品国产秦先生| 成人av免费在线播放| 欧美午夜一区二区三区| 4438亚洲最大| 国产色综合一区| 亚洲综合精品久久| 精品一区二区三区的国产在线播放| 国产一本一道久久香蕉| 色丁香久综合在线久综合在线观看| 欧美日韩精品一区二区天天拍小说 | 国产一区二区导航在线播放| 成人免费视频网站在线观看| 日本久久精品电影| 久久久久久久综合色一本| 成人免费在线播放视频| 久热成人在线视频| 色综合激情久久| 久久这里只有精品6| 亚洲精品乱码久久久久久日本蜜臀| 日本va欧美va瓶| 日本韩国一区二区三区视频| 日韩欧美久久一区| 亚洲欧洲精品一区二区三区不卡| 亚洲国产精品久久不卡毛片| 国产成人免费在线观看不卡| 欧美另类一区二区三区| 国产精品三级av在线播放| 久久成人久久鬼色|