如何删除列中的空格?

如何删除列中的空格?

我想过滤文件的某些列,它有46总共。我只想从25直到46,通过下一种方式:

期望的输出:

Column25 Column26 ... Column47
Column25 Column26 ... Column47
Column25 Column26 ... Column47

我有正确的 awk 命令:

cat -n <(awk '{n=17;if(NR==1)n=25;for(i=n;i<=NF;i++) a[$i]++} END{for(val in a) print val,a[val]}' filelog.txt)

上面的命令取自25直到最后一列,在本例中是47。它工作正常,打印我想要的所有字段中的所有字符串。


但这里有一个问题:

我想打印的列有空格就像下一个方法:

Column25 Column26     ...    Column47
Column25 Column26    [...]   Column47
[:space:]Column26  [:space:] Column47
[:space:][:space:] [:space:] [:space:]
Column25 [:space:] [:space:] [:space:]

问题是:当我打印所有特定列时,其他列中的字符串会传递到所需列中的空格。

例如:

Column25           Column26             ...          Column47
Column25           Stringsofcolumn12  Manystrings Stringsofcolumn21
Stringsofcolumn23  Stringsofcolumn5   ofmanycolumns Stringsofcolumn22
Column25           Stringsofcolumn16  blablabla    anothermanystrings

有什么方法可以删除我要打印的列中的空格,以避免这种情况?


笔记:

列的字符串与标题的文本相同。示例:如果column28有内容字符串,则字符串是column28字面意思。但我想现在这并不重要,只是发表评论。

谢谢你!

答案1

那是你要的吗?

cat thefile | tr '\t' ' '| tr -s " " | cut -d' ' -f25-46 

如果解决了您的问题,请标记为正确答案

相关内容