フロントエンドにn個のスペースを追加する方法

フロントエンドにn個のスペースを追加する方法

次のデータを含むテキストファイル、ABC.txtがあります。

nテキストファイルの前半の1行あたりのスペース数を計算したいと思います。

A Apple a day keeps a doctor away 
B I like to play with Ball
C I have cat at my home
D My Dog name is bob
I want to display output on my screen with 10 spaces in a frontend and then my file data

予想出力:

  A Apple a day keeps a doctor away 
  B I like to play with Ball
  C I have cat at my home
  D My Dog name is bob

試してみましたが動作しません

注文する:

prefix='          '
sed "s/^/$prefix/" ABC.txt

スペースを追加する必要がある場合は、プレフィックスを変更する必要がないように汎用コードが必要です。

20個の空白を望むように - >入力として20を渡し、テキストはテキストファイルの各行の前に20個の空白にフォーマットされます。

ベストアンサー1

そしてperl

n=12
perl -spe '$_ = " " x $n . $_' -- -n="$n" < your-file

そしてawk

n=12
awk -v n="$n" '
  BEGIN{indent = sprintf("%*s", n, "")}
  {print indent $0}' < your-file

そして:zshsed

n=12
sed "s/^/${(l[$n])}/" < your-file

左パディングのパラメータ拡張フラグはどこにありますかl[n]?ここでは、パラメータはまったく適用されません。

bash、zsh、またはksh93を使用して次のこともできます。

n=12
printf -v indent "%${n}s"
sed "s/^/$indent/" < your-file

POSIXシェルの使用:

n=12
indent=$(printf "%${n}s")
sed "s/^/$indent/" < your-file

おすすめ記事