• 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 018 105 100

    将制表符修改为逗号分隔符:

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

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

    005,018,105,100

  • 相关阅读:
    找到了2年前的一个微博小号
    Float Equal Problem
    有用的护肤品贴
    最近状态总结
    [Coursera]Machine Learning
    KMP算法(转载)
    [Leetcode] Median of Two Sorted Arrays
    [Algorithms(Princeton)] Week1
    [Algorithms(Princeton)] Week1
    [Leetcode] Binary Tree Maximum Path Sum
  • 原文地址:https://www.cnblogs.com/chenwenyan/p/7464619.html
Copyright © 2020-2023  润新知