awkで最初の文字を-7文字にカットする方法は?

awkで最初の文字を-7文字にカットする方法は?

複数行を含むファイルがあります。

ここで2番目の列はですが、user_id最後の7つの数字はランダムな数字です。

実際の身分証明書を取得するには、切り取る必要があります。

1st character to the -7 characterだから私が必要とするのは、各行の2番目の列を取得することです。

awkの機能を検索しましたが、substr自分で作業を実行できないようです。

それでは、awkで最初の文字を-7文字にカットする方法は?

答え1

awk '{ print substr($2,1,length($2)-7) }'

length($2) <= 7 の場合、出力は得られません。最小長が必要ですか?その場合は、awkでmin()関数を定義できます。

awk 'function min(a,b){return a<b?b:a}  ..<rest of code>..'

答え2

2番目の列で作業を実行する必要があるとします(最後の7文字を切り捨てる)。

[whatever command you use to open your file] | awk '{ print $2 }' | rev | cut -c 8- | rev

詳細は次のとおりです。

awk '{ print $2 }'ファイルの2番目の列を取得します。

rev文字列を準備します(逆)。最後のN文字を削除する方法がないと思うので、これはcut逆方向文字列から最初のN文字を削除します。

cut -c 8-文字列から最初の7文字を削除します。 (繰り返し試行の最後に発見され、検証が必要です)

rev処理された文字列を逆に置き換えます。これにより元の文字列が表示されますが、7文字は除外されます。

関連情報