このような行でいっぱいのファイルを作成できた場合...
/VAULT14/620100_V14/620054 VOL1620054
最後の2 * 6桁の数字を比較するためにbashを取得するにはどうすればよいですか。たとえば、行の読み取りが次の場合にのみ一致します
/VAULT14/620100_V14/620054 VOL1620541
基本的に、私が持っているのは、tapelabs システム上の仮想テープへのパスのリストであり、同じ行に、そのテープの実際の VOL1 テープ ヘッダー ラベルは何ですか。
気になるのは、ラベル (VOL1) が実際の仮想テープ ファイル名と一致しないかどうかです。
私は試してみましawk
たが、何かが欠けているに違いありません:
echo "/VAULT14/620100_V14/620054 VOL1620054" | awk '{ if (substr($1,(length($1)-6)) == substr($2,(length($2)-6))) print "Same"; else print "Different" }'
返すDifferent
べきだと思ったときに返すSame
編集:
@shelter からのコメントのおかげで、実際には長さから 1 文字が多すぎるため、/620054
決して一致しないことに気付きました1620054
!!
更新されたコードは次のとおりです。
echo "/VAULT14/620100_V14/620054 VOL1620054" | awk '{ if (substr($1,(length($1)-5)) == substr($2,(length($2)-5))) print "Same"; else print "Different" }'