sedまたはPerlを使用してファイル内の1行だけを左に並べる方法

sedまたはPerlを使用してファイル内の1行だけを左に並べる方法

これにより、各行の先頭にあるすべてのスペースとタブが削除されます。

sed 's/^[ \t]*//' file

queued.max.requests=1000しかし、ファイルのパラメータだけをソートしたいとしましょう。

  • 入力例:
        log.flush.interval.messages=20000
        queued.max.requests = 1000
        producer.purgatory.purge.interval.requests=100
    
  • 希望の出力:
         log.flush.interval.messages=20000
    queued.max.requests=1000
         producer.purgatory.purge.interval.requests=100
    

sed 's/^[ \t]*//'私たちはこの状況にどのように適応しますか?また、sed / perlでは、 " ="のパラメータとプロシージャの値の ""の間の=スペースを削除したいと思います。

ベストアンサー1

どうですか?

sed '/queued\.max\.requests/s/[\t ]\{1,\}//g' file

または

sed -r '/queued\.max\.requests/s/[\t ]+//g' file

=これにより、埋め込まれた行のすべてのスペース(行の先頭と周囲のスペースからのみ)が削除されますqueued.max.requests

おすすめ記事