Linux:批量修改分隔符(awkBEGINFSOFSprint命令)

Posted 橙子牛奶糖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux:批量修改分隔符(awkBEGINFSOFSprint命令)相关的知识,希望对你有一定的参考价值。

批量修改文件的分隔符,可以用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

 

 

 

以上是关于Linux:批量修改分隔符(awkBEGINFSOFSprint命令)的主要内容,如果未能解决你的问题,请参考以下文章

批量修改扩展名

linux批量修改文件后缀名

linux for循环 带空格的文件名

Linux下批量修改文件名

linux批量修改目录或者文件名

python批量修改linux主机密码