批量修改文件的分隔符,可以用FS和OFS命令
FS:Field Separator,字段分隔符
OFS:Out of Field Separator,輸出字段分隔符
- 修改空格為分隔符
假設有這么一個文件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