Этот ответ говорит мне, как найти файлы с одинаковыми именами в двух каталогах в bash:
diff -srq dir1/ dir2/ | grep identical
Теперь я хочу рассмотреть файлы, которые удовлетворяют условию.Если я использую ls E*
, я получаю обратно файлы, начинающиеся с E. Я хочу сделать то же самое с помощью приведенной выше команды: дайте мне имена файлов, которые отличаются в dir1/
и dir2/
, но рассмотрите только те, которые начинаются с E.
Я попробовал следующее:
diff -srq dir1/E* dir2/E* | grep identical
но это не сработало, я получил такой вывод:
diff: дополнительный операнд '/ home / pal /konkoly / c6 / elesbe3 / 1 / EPIC_212291374- c06-k2sc.dat.flag.spline 'diff: попробуйте' diff --help 'для получения дополнительной информации.
((/home/pal/konkoly/c6/elesbe3/1/EPIC_212291374-
c06-k2sc.dat.flag.spline
- это файлв так называемом dir1
, но EPIC_212291374-
c06-k2sc.dat.flag.spline
нет в так называемом dir2
))
Как я могу это решить?
Я пытался это сделатьследующим образом, основываясь на этом ответе :
DIR1=$(ls dir1)
DIR2=$(ls dir2)
for i in $DIR1; do
for j in $DIR2; do
if [[ $i == $j ]]; then
echo "$i == $j"
fi
done
done
Он работает, как указано выше, но если я пишу DIR1=$(ls path1/E*)
и DIR2=$(ls path2/E*)
, это не так, я не получаю вывод.