15

bash を使用して、ファイルの各行の空白を削除する方法 たとえば、file1.txt です。前:

  gg g
 gg g
t  ttt

後:

gg g
gg g
t  ttt
4

5 に答える 5

29

sed -i 's/ //g' your_fileファイルをその場で変更して、それを行います。

1 行の先頭にある空白のみを削除するには、次を使用します。sed -i 's/^ *//' your_file

最初の式では、すべてのスペースを何も置き換えません。^2番目のものでは、キーワードを使用して先頭を置き換えます

于 2012-02-16T10:55:12.357 に答える
16

tr(すべての空白を削除):

$ tr -d ' ' <input.txt >output.txt
$ mv output.txt input.txt

sed(先頭の空白を削除)

$ sed -i 's/^ *//' input.txt
于 2012-02-16T10:49:34.233 に答える
4

代わりにperl-iを使用できます。

perl -p -e 's/^ *//' file 
于 2012-02-16T11:26:10.080 に答える
1

パターンが一致する場合、行頭の前の空白を削除します。次のコマンドを使用します。たとえば、 foo.in には次のようなパターンがあります

      This is a test                                
                    Lolll
                       blaahhh
      This is a testtt

次のコマンドを発行した後

sed -e '/This/s/ *//' < foo.in > foo.out

foo.out は

This is a test
             Lolll
                blaahhh
This is a testtt
于 2015-08-14T18:34:29.293 に答える
1

空白」には、スペースタブ両方を含めることができます。これまでに提示されたソリューションは、スペースでのみ一致し、正常に動作します。空白がタブの形をとる場合、それらは失敗します。

以下は、スペースとタブの両方を含む OP の標本データ セットでテストされ、両方で正常に一致し、動作しています。

sed 's/^[[:blank:]]*//g' yourFile

テスト後、-iスイッチをsed指定して変更を永続化します。

于 2020-06-07T09:36:38.737 に答える