linux - Bash 比较目录中的字符串

标签 linux bash unix

您好,我正在尝试比较目录中的两个字符串。格式如下。

{sametext}差异{sametext}

注意:{sametext} 不是每个文件都是静态的

例如

myfile_1_exercise.txtmyfile_2_exercise.txt

相比

你能告诉我如何在 if 语句中匹配上述字符串吗?

基本上我需要知道如何忽略两个字符串中的数字以使它们相同。

部分示例代码如下所示:

我的示例代码如下所示:

for g in `ls -d */`;
do                      
  if [ -d $g ]; then 
    cd $g                 # down 1 directories
    for h in `ls *root`;
    do
      printf "${Process[${count}]} = ${basedir}/${f}${g}${h}\n"
      h1=${h}

      if [ "${h1}" = "${h2}" ]; then # NEED to MATCH SOME HOW??????????
        echo we have a match
      fi

      h2=${h1}
      let count+=1
    done

    cd ../
    #printf "\n\n\n\n"      
  fi
done

应该用什么测试来确定这一点而不是 "${h1}"= "${h2}"

干杯,

迈克

最佳答案

"myfile_1_exercise.txt" == "myfile_2_exercise.txt"

你的意思是上面的测试应该返回 true(忽略数字)对吗?
这就是我会做的:

h1="myfile_1_exercise.txt"
h2="myfile_2_exercise.txt"
if [ $( echo ${h1} | sed 's/[0-9]*//g' ) == $( echo ${h2} | sed 's/[0-9]*//g' ) ] ; then 
    # do something here.
fi

关于linux - Bash 比较目录中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6295774/

相关文章:

c++ - GTK 小部件对话框不关闭

linux - 列出其内容可以与多个字符串中的任何一个匹配的所有文件名的最快方法

bash - AWK:如何在 Bash 中将列式文件读取为 AWK 脚本?

linux - 运行脚本中的权限被拒绝

linux - 将文件中的每个单词替换为另一个字典文件中的值

c - 用 C 语言构建全双工管道

javascript - 我如何计算各种字符的终端列宽?

linux - 想要使用 shell 脚本在两个文件中追加记录

bash - 递归创建文件和文件夹的 Unix 命令

unix - 从 OCaml 内部调用外部程序