Linux:批量修改分隔符(awk、BEGIN、FS、OFS、print、tr命令)


批量修改文件的分隔符,可以用FS和OFS命令

FS:Field Separator,字段分隔符

OFS:Out of Field Separator,輸出字段分隔符

  1. 修改空格為分隔符

假設有這么一個文件file1.txt,其內容如下:

可以看出,file1的分隔符很長,不止一個空格符組成,因此我們需要先將分隔符統一一下,輸入一下命令:

awk -F " " '{if($1~/^16/) print $1,$2,$3,$4}' file1.txt > file2.txt

  生成file2.txt,如下圖片:

2. 修改分隔符為逗號

分隔符統一為一個空格,接下來將分隔符統一修改為逗號“,”,輸入一下命令:

awk 'BEGIN{ FS=" ";OFS="," }{ print $1,$2,$3,$4 }' file2.txt > file3.txt

  生成的文件file3.txt如下:

如果想將分隔符修改為冒號,只需要將OFS=","修改為OFS=":"

 3.修改制表符為逗號

sampleID.txt文件如下:

005 018 105 100

首先判斷文件是制表符還是空格:

sed -n l sampleID.txt ###判斷文件時制表符還是空格分割的;

  如果是空格分割的,顯示結果為:

005 018 105 100

如果是制表符分割,顯示結果為:

005\t018\t105\t100

將制表符修改為逗號分隔符:

cat sampleID.txt|tr  "\t" "," > sampleID_form.txt  

生成的sampleID_form.txt的內容如下:

005,018,105,100

 

 

 


免責聲明!

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



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