#csh #tcsh
Вопрос:
У меня есть ряд файлов списка, каждый из которых содержит список имен файлов. Я хотел бы просмотреть каждый из этих файлов списка, и если одно (или несколько) из его имен файлов содержат определенный общий шаблон в заданном месте в имени файла, я хотел бы удалить его из одного файла списка в другой (не имеет значения, какой файл списка в какой файл списка). Придется сделать это в tcsh. Например, допустим, у меня есть следующие 3 файла списка
файл 1:
abcdefg.ext
nyrtsed.ext
sapoltw.ext
файл 2:
rncdefg.ext
nydusap.ext
файл 3:
revflon.ext
tradefg.ext
и я смотрю на подстроку из символов 3-6 (на основе 0)
, затем имя abcdefg.ext
файла в файле 1 имеет ту же подстроку, что и имя rncdefg.ext
файла в файле 2, и ту же подстроку, что и имя tradefg.ext
файла в файле 3.
Я хотел бы переместить эти 3 имени файлов в один и тот же файл списка (файл 1, 2 или 3).
Поэтому, если бы я переместил их все в файл 3, я бы получил
файл 1:
nyrtsed.ext
sapoltw.ext
файл 2:
nydusap.ext
файл 3:
revflon.ext
tradefg.ext
abcdefg.ext
rncdefg.ext
Это мое первое испытание (все еще неполное), но мне кажется, что оно слишком сложное (много вложенных циклов).
foreach list1 ($lists)
foreach file1 ( `cat ${list}`)
set pat1=`basename $file1 | cut -c10-14`
foreach list2 ($lists)
if ($list1 != $list2) then
foreach file2 ( `cat ${list2}`)
set pat2=`basename $file2 | cut -c10-14`
if ( $pat1 == $pat2 ) then
# have to remove from list1 and add it to list2
# how to?
endif
end
endif
end
end
end
Комментарии:
1. Ну, а что ты пробовал? И зачем, если вы
"Have to do it in tcsh"
включили тег [bash]? Добавьте свои усилия к вашему вопросу, чтобы мы знали, где вы застряли.2. @DavidC.Rankin Я обновил вопрос с частичным испытанием. Тег bash связан с тем, что в прошлом мне удавалось преобразовать решение в bash в tcsh. Поскольку решения в bash более распространены, имеет смысл обратиться к более широкому сообществу. Тем более, что это непростой вопрос. В связи с этим я нахожу комментарии, подобные вашим, напыщенными и не очень полезными. Если у вас нет конструктивных комментариев/подсказок к вопросу, используйте свое время лучше в других вопросах. Если только вы не публикуете такого рода комментарии для голосов.