web-dev-qa-db-ja.com

最初の列からスペースを削除する

入力ファイルの最初の列に、スペースの数が異なる(またはスペースがない)位置があります

16504   16516       
    1650811   16520      
 1651   16524      
  16516111   16528       
 165204   16532       

2番目の列をそのままにして、最初の列にスペースがまったくない出力ファイルを取得する必要があります。

16504   16516       
16508   16520     
16512   16524      
16516   16528       
16520   16532   
2
user61398

これが単なる配置の問題であり、データを列に並べたい場合:

$ column -t somefile
16504     16516
1650811   16520
1651      16524
16516111  16528
165204    16532

-tcolumnに切り替えると、ソースデータからテーブルが自動的に作成されます。

   -t, --table
          Determine the number of columns the input contains and create a 
          table.  Columns are delimited with whitespace,  by  default,
          or with the characters supplied using the separator. Table output 
          is useful for pretty-printing.
9
slm

あなたはおそらく次のようなものを求めています:

sed "s/^ *//" < your_file

これにより、先頭のスペースがすべて削除されます(空の文字列に置き換えられます)。列間に可変数のスペースもある場合は、次のように拡張できます。

sed "s/^ *//;s/  */    /g" < your_file

これは(先頭のスペースを削除した後)、1つ以上のスペースの出現を固定文字列(この場合は4つのスペース)に置き換えます。タブ文字が使用されている場合をカバーするために、マッチングパターンでプレーンスペースの代わりに\sを使用することもできます。

5
peterph

あなたはこれを試すことができます:

awk '$1=$1' file

最初の列の先頭のスペースをすべて削除します。

3
cuonglm