如果我设法创建了一个充满这样行的文件......
/VAULT14/620100_V14/620054 VOL1620054
如何让 bash 比较最后的 2 * 6 位数字,例如仅在行读取时才匹配
/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 的评论,我意识到我实际上从长度中提取了太多字符,因此/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" }'