N番目のフィールドの最初の文字位置を取得します。

N番目のフィールドの最初の文字位置を取得します。

次の行の2番目のフィールド(「スクリプト」など)の最初の文字の左側の位置(例:7)を取得したいとします。

Shell scripting is amazing.

可能な限りawkを使用してどのような方法を提案してください。

ベストアンサー1

POSIX awkを使用し、デフォルトのFSを使用しているとします。

$ awk -v n=2 '{match($0,"[[:space:]]*([^[:space:]]+[[:space:]]+){"n-1"}"); print RLENGTH+1}' file
7

以前は、[[:space:]]*awkがデフォルト値が指定された最初のフィールドの前に前のスペースをスキップしたことを考慮することですFS。無条件印刷は、行にRLENGTH+1多くのフィールドがない場合でも常に数字を印刷することを保証することです。最初に検索を要求します(この場合は印刷されます0)。

おすすめ記事