Linux
如何刪除列中的空格?
我想過濾文件的某些列,它總共有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
字面意思。但我想這並不重要,只是評論。謝謝!
那是你要的嗎?
cat thefile | tr '\t' ' '| tr -s " " | cut -d' ' -f25-46
如果能解決您的問題,請標記為正確答案