複数行を含むファイルがあります。
ここで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文字は除外されます。