复制列并使用特殊字符粘贴它

时间:2013-09-02 11:03:01

标签: regex linux perl bash parsing

我有一个像

这样的输入文件
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分隔

谢谢!

4 个答案:

答案 0 :(得分:3)

这条线适合你吗?

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

答案 1 :(得分:3)

这是另一种方式:

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

答案 2 :(得分:0)

另一种方式:

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

答案 3 :(得分:0)

这可能适合你(GNU sed):

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