Von*_*ton 2 printing awk is-empty
我有一个输入文件,该文件用制表符分隔,但我想删除所有空列。空栏:$ 13 = $ 14 = $ 15 = $ 84 = $ 85 = $ 86 = $ 87 = $ 88 = $ 89 = $ 91 = $ 94
输入:超过90列的tsv文件
a b d e g...
a b d e g...
Run Code Online (Sandbox Code Playgroud)
输出:tsv文件无空列
a b d e g....
a b d e g...
Run Code Online (Sandbox Code Playgroud)
谢谢
这可能是您想要的:
$ printf 'a\tb\tc\td\te\n'
a b c d e
$ printf 'a\tb\tc\td\te\n' | awk 'BEGIN{FS=OFS="\t"} {$2=$4=""} 1'
a c e
$ printf 'a\tb\tc\td\te\n' | awk 'BEGIN{FS=OFS="\t"} {$2=$4=RS; gsub("(^|"FS")"RS,"")} 1'
a c e
Run Code Online (Sandbox Code Playgroud)
请注意,上面的方法并不能像某些潜在的解决方案那样删除所有空列,而只是删除您要删除的列号:
$ printf 'a\tb\t\td\te\n'
a b d e
$ printf 'a\tb\t\td\te\n' | awk 'BEGIN{FS=OFS="\t"} {$2=$4=RS; gsub("(^|"FS")"RS,"")} 1'
a e
Run Code Online (Sandbox Code Playgroud)