需求描述:
今天在幫同事看個需求,將操作系統上的文件進行修改名字,改為特定的名字,所以呢,就先把這些原名字及對應的新名字關系放到了一個文本中,對於這個文本執行循環.
文件格式如下:
201803270000000000000.000000057100100000測試_提單測試.txt 20180725094809546000001.txt 201803270000000000000.000000058100100000測試_提單測試.txt 20180725094809546000002.txt
操作過程:
1.通過while結合read命令對文件內容進行處理
#!/bin/bash while read line do Orig_Name=$(echo $line | awk '{print $1}') #獲取文件原名字,也就是第一個字段 New_Name=$(echo $line | awk '{print $2}') #獲取文件新的名字,也就是第二個字段,因為一行中包括兩個信息,所以要這么處理touch $Orig_Name #模擬創建原文件 cp $Orig_Name $New_Name #將文件拷貝成新的名字. done < file02.txt #讀取文件中的內容.賦值給變量line.
備注:通過使用read的方式就將文件中的每一行都賦值給line變量,然后line變量在do...done中進行處理.
另:在測試的過程中,拷貝出來的文件名字的結尾有?,這個就要注意了.是由於在windows環境中創建文件導致的.建議,在linux環境中增加文件,或者直接在記事本中操作.不會有windows的結尾符.
文檔創建時間:2018年7月25日14:20:58