Поиск шаблона и добавляет строку в другой файл

Только не устанавливайте одинаковые права доступа к каталогу и файлам в нем:

$ chmod g+rx directory/
$ chmod g= directory/*

Здесь члены группы могут вводить и просматривать каталог, но не смогут читать файлы в нем.

Правка: что касается вашего нового заголовка, я бы предложил:

$ chmod a+rx directory/
$ chmod u=rwX,g=rX,o= *
1
18.11.2014, 03:25
2 ответа

Эквивалент в BSD или OSX -

$ du -ah simpl | sort -dr | head -6
-121--4559-

Можно использовать уже имеющийся код. Сохранить линию во множество и матч для Пятого элемента:

while read -r line; do
    [ -z "$line" ] && continue
    patlist=($line)
    pat=${patlist[4]}
    grep "$pat" --label="$line" -H < KEGG.annotations
done < allKO.txt

прибыль:

Metabolism Carbohydrate metabolism Glycolisis K07448:>aai:AARI_33320  mrr; restriction system protein Mrr; K07448 restriction system protein
Metabolism Protein metabolism protesome K02217:>aai:AARI_26600  ferritin-like protein; K02217 ferritin [EC:1.16.3.1]
0
28.01.2020, 01:49

Это, кажется, делает то, что вы, кажется, просят:

while read w1 w2 w3 w4 ID
do
    printf "%s " "$w1 $w2 $w3 $w4 $ID"
    if ! grep "$ID" KEGG.annotations
    then
        echo
    fi
done < allKO.txt

Это будет писать вывод на экран. Добавить вывод (> ) перенаправление (например, > Test1 ) до последней строки Чтобы захватить вывод в файле.

  • На основании ваших примеров клавиша / идентификационного поля («шаблон») пятый из полей в файле в файле Allko.txt , поэтому мы прочитали ID W1 W2 W3 W4 . Вы говорите, что это файл разделите вкладки; Я предполагаю, что ни один из областей не содержит пробелов.
  • Написать ( Printf ) Линия (то есть поля) из ALLKO.TXT , с пространством в конце, но нет завершения новой строки.
  • Поиск ( GREP ) kegg.annotations файл для идентификатора (Пятое поле из линии из ALLKO.TXT ). Это будут полные строки (в том числе в Newlines).
  • Если GREP не удается, напишите новую строку, поскольку Printf не сделали.
  • Это приведет к строкам, идентификатор которых нет в kegg.annotations Быть просто написанным на выходе:

     метаболизм белкового метаболизма протеасомы K02217> AAI: AARI_26600 Ферритин белок;  K02217 Ferritin [EC: 1.16.3.1]
    Этот идентификатор не существует: K99999
     

    и идентификаторы, которые существуют более одного раза, написаны как дополнительные строки (Не повторяя данные из ALLKO.TXT ):

     Метаболизм белковый метаболизм протеасомы K02217> AAI: AARI_26600 Ферритин белок;  K02217 Ferritin [EC: 1.16.3.1]
    Это гипотетическая дополнительная линия от Kegg.annotations, которые упоминают «K02217».
     
0
28.01.2020, 01:49

Теги

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