列からスペースを削除する方法は?

列からスペースを削除する方法は?

ファイルの特定の列をフィルタリングしたいのですが。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 

問題が解決したら正解で表示してください。

おすすめ記事