sudo dnf install /path/to/package.rpm
будет воздействовать на пакет по указанному пути.
sed
неужели:
sed -E 's/>([0-9]+_)(\w+)/>\2/' files
если ваш шаблон точно в вопросе:
sed -E 's/([0-9]+_)//' files
-E
использовать расширенные регулярные выражения ([0-9]+_)(\w+)
определяет две области Word Pattern , к которым вы можете получить доступ с помощью \1 и \2 . Используя стандарт sed
и предполагая, что все файлы расположены в текущем каталоге:
mkdir fixed || exit 1 # exits if the output directory already exists
for filename in *.sorted; do
sed '/^>[0-9]*_/s//>/' "$filename" >"fixed/$filename"
done
Это будет перебирать все имена файлов, соответствующие шаблону *.sorted
, и для каждого запускать короткий sed
скрипт.
Сценарий sed
найдет все заголовки Fasta, которые начинаются с числа, за которым следует символ подчеркивания. Когда он найдет его, он заменит маркер заголовка, число и подчеркивание только маркером заголовка >
.
Результат будет записан в новые файлы в подкаталоге fixed
.
[OP wrote] Pretty sure there is a simple sed solution which I can't seem to figure out.
Верно.
[OP wrote] Notes: The characters are always five numbers followed by an underscore followed by Pseudomonas_etcetera. This string is always at the beginning of its line and it always starts with ">". All files have a ".sorted" extension.
Ваше описание оператора pbm довольно точно в том смысле, что его можно успешно перевести в sed
код. Вот как:
/^>/
/^>[0-9][0-9][0-9][0-9][0-9]/
/^>[0-9][0-9][0-9][0-9][0-9]_Pseudomonas_etcetera/
sed
— :s/regex/rpl_str/
, что означает, что любая часть пространства шаблонов (, обычно текущая строка, также известная как запись ), соответствует регулярному выражению (на LHS
команды s///
следует заменить строкой замены в RHS
команды s///
. sed -e 's/^>[0-9][0-9][0-9][0-9][0-9]_Pseudomonas_etcetera/>Pseudomonas_etcetera/' inp1.sorted