このコマンドがどのように機能するかを理解する必要があります。
awk 'BEGIN{while(a++<30)s=s " "};{sub(/^.{6}/,"&" s)};l' myfile
最初の部分 (BEGIN{} セクションの式) が 30 文字の長さのスペース文字列を作成する方法を理解しています。しかし、2番目の部分(サブ)がわかりません。
sub
は、最近生成された文字列「s」を「myfile」の 6 列目に追加します。しかし、コマンドを見ると、検索パターン/^.{6}/
は 1 文字 (.) で始まり、次に {6} で始まるすべての行を検索し、それらをスペースが追加された文字列に置き換える必要があります。
これをよりよく理解するのを手伝ってもらえますか?