linux中如何對一個文件的內容進行處理,文件中每行有多個字段的值,中間用空格分隔開?


需求描述:

  今天在幫同事看個需求,將操作系統上的文件進行修改名字,改為特定的名字,所以呢,就先把這些原名字及對應的新名字關系放到了一個文本中,對於這個文本執行循環.

文件格式如下:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM