Относительно команды awk

[

] вместо этого используйте []zsh[]:[

] [
setopt extendedglob
for f ($arg/**/*.(#i)(txt|h|py)(N.)) {
  ...
}
] [
    ] [
  • ][]**/[]: любой уровень подкаталогов[
  • ] [
  • ][](#i)[] должен включать нечувствительное к регистру совпадение для остальной части глобуса (как []~(i)[] в []ksh93[]). [
  • ] [
  • ][](N.)[] является классификатором глобуса. []N[] должен не возвращать ошибку, если нет соответствующего файла и [].[] должен выбирать только обычные файлы (эквивалент [] найти [] -тип f[]-тип f[]))). Вы можете добавить туда []D[], чтобы также сопоставить точечные (скрытые) файлы и спуститься в скрытые папки (как []find[] по умолчанию).[
  • ] [
]
1
17.06.2017, 14:48
3 ответа

Я думаю, что лучше с sed, например: sed 's/\ / ahy /g' и sed 's/\ / aly /g'. Он заменит любой символ пробела для ahy или aly.

Также это возможно с awk, но я не смог понять, как хранятся ваши данные :-/

EDIT:

Попробуйте это. awk '{if ($1== "Организм:") {word = $2; print $0} else { if ($1=="соответствие") {print $0} else {print word $0}} Фамилия

0
27.01.2020, 23:37

как заданное исполнение awk

awk '/^Organism/{prefix=$2}/miR[0-9]{3}/{$0=prefix $0}1'
0
27.01.2020, 23:37

Да, awk является подходящим инструментом для таких задач. Предполагая, что все данные находятся в одном файле, как показано в вопросе, попробуйте:

awk '
  /^Organism:/  { prefix = $2 ; print ; next }
  /^matching/ || !NF  { print ; next }
  { print prefix, $1 }
'
2
27.01.2020, 23:37

Теги

Похожие вопросы