【问题标题】:Copy the column and paste it with special character [closed]复制列并用特殊字符粘贴它[关闭]
【发布时间】:2013-09-05 11:18:35
【问题描述】:

我有一个类似的输入文件

C3905550 oder CDS 68 646 . - . asmbl_487
C3905550 oder exon 68 646 . - . asmbl_418
C3918365 oder CDS 42 252 . + . asmbl_445
C3918365 oder exon 42 252 . + . asmbl_443

所有列都由 TAB 分隔

我想创建一个新的输出文件,例如:

C3905550 oder CDS 68 646 . - . asmbl_487 "asmbl_487"
C3905550 oder exon 68 646 . - . asmbl_418 "asmbl_418"
C3918365 oder CDS 42 252 . + . asmbl_445 "asmbl_445"
C3918365 oder exon 42 252 . + . asmbl_443 "asmbl_443"

在输出文件中最后一列应该被复制并用“”粘贴,这个新列应该用空格而不是TAB分隔,其余列应该像输入文件中一样,用TAB分隔

谢谢!

【问题讨论】:

    标签: regex linux perl bash parsing


    【解决方案1】:

    这条线适合你吗?

    awk -F'\t' '{print $0" \""$NF"\""}' file
    

    【讨论】:

      【解决方案2】:

      这是另一种方式:

      perl -pe 's/\t(\S+)\K$/\t"$1"/m'
      

      【讨论】:

      • 如果最后一个字段包含空格会失败。
      【解决方案3】:

      另一种方式:

      sed 's/.*[[:space:]]\([^[:space:]]\+\)$/& "\1"/' file
      

      【讨论】:

        【解决方案4】:

        这可能对你有用(GNU sed):

        sed 's/\t\([^\t]*\)$/& "\1"/' file
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-12-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多