テキストファイルからインデントを削除する

テキストファイルからインデントを削除する

次のテキストがあります。

    it's like a foo.
     it's like a bar.
        it's like a bar.
  it's like a foo.

最初の行のインデントやスペースを削除し、次の行でも同じ量のインデントやスペースを削除したいと思います。

後続の行のスペースまたはインデントが最初の行より少ない場合は、すべての先行スペースまたはインデントが削除されます。

出力は次のとおりです

it's like a foo.
 it's like a bar.
    it's like a bar.
it's like a foo.

ベストアンサー1

使用expand(TAB を SPC に拡張し、タブが 8 列ごとに停止すると仮定し、他の空白文字は考慮されません) および次を使用しawkます。

<your-file expand | awk -F '[^ ]' '
  NR == 1 {n = length($1)}
  {sub("^ {1,"n"}", ""); print}'

おすすめ記事