Linux:批量修改分隔符(awkBEGINFSOFSprint命令)
Posted 橙子牛奶糖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux:批量修改分隔符(awkBEGINFSOFSprint命令)相关的知识,希望对你有一定的参考价值。
批量修改文件的分隔符,可以用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
以上是关于Linux:批量修改分隔符(awkBEGINFSOFSprint命令)的主要内容,如果未能解决你的问题,请参考以下文章