Bash - Get first 3 letters of filename
本问题已经有最佳答案,请猛点这里访问。
我有一个小bash脚本,有$file和$file2变量。这是文件,我想得到这个文件名的前3个字母。我想比较一下:
我试过:
1 2 3 4 5 6 7 8 | curfile=$(basename $file) curfilefirst3=${curfile:0:3} curfile2=$(basename $file2) curfile2first3=${curfile2:0:3} if ((curfilefirst3 == curfile2first3 )); then .... |
但我觉得有问题,我该怎么解决?
谢谢您。
比较中的字符串缺少
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | file="this.txt" file2="that.txt" curfile=$(basename $file) curfilefirst3=${curfile:0:3} curfile2=$(basename $file2) curfile2first3=${curfile2:0:3} echo $curfile2first3 echo $curfilefirst3 if ["$curfile2first3" =="$curfilefirst3" ] then echo"same!" else echo"different!" fi |
阅读bash条件可能是个好主意
子串提取
$字符串:位置从$position处的$string提取子字符串。但是,如果应该使用[而不是(如:
1 | if [ $curfilefirst3 == $curfile2first3 ]; then |
修正版本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/bin/bash file=abcdef file2=abc123456 curfile=$(basename $file) curfilefirst3=${curfile:0:3} curfile2=$(basename $file2) curfile2first3=${curfile2:0:3} echo $curfilefirst3 echo $curfile2first3 if [ $curfilefirst3 = $curfile2first3 ]; then echo same else echo different fi |
它打印相同所以,作品