chmod +x website
только добавит флаг выполнения в каталог для всех пользователей, тем самым позволяя всем пользователям войти в каталог. Это не изменит разрешения на запись.
Я полагаю, что вы пытаетесь изменить файлы в этом каталоге, которые недоступны для записи непривилегированным пользователем. В этом случае вам нужно переключиться на пользователя root и повторить попытку.
Изменить :Почти наверняка бит выполнения уже был установлен для этого каталога, поэтому попытка отменить команду через chmod -x website
, скорее всего, усугубит ситуацию.
$ awk '/^$|^Alignments/' input.txt | uniq
Alignments 747883433 76303046
Alignments 838333186 82982133
uniq
следит за тем, чтобы не было более одной пустой строки до, после или между любыми Alignments
строками.
grep
. или sed -n
. или perl -n
. например.
$ grep -E '^$|Alignments' input.txt | uniq
Вы можете использовать приведенный ниже Awk
для решения вашей проблемы. Сопоставьте пустую строку и посмотрите, начинается ли строка, начинающаяся с Alignments
, сразу после этой
awk '!NF { line = NR; next } (NR = line + 1 ) && /^Alignments/{ printf "\n%s\n",$0; }' file
Почему бы нам не использовать grep?:
grep -A1 "^$" file | grep -B1 'Alignments' | grep -v -- "^--$"
Сэд отлично справляется с такими задачами. Сначала мы приклеиваем следующую строку к текущей, если текущая пуста. Затем опросите и распечатайте при соответствии набору критериев.
$ sed -ne '
/./!N
/^\nAlignments/p
' file.txt
Использование GNU awk:
awk -v RS='\nAlignments[ 0-9]*' '{print RT}' file
Разделитель записей RS
устанавливается равным ожидаемому совпадению и печатается для каждой записи с использованиемRT
(признака конца записи ).
Пробовал использовать команду «Нижний», все работает нормально
awk '{a[++i]=$0}/Alignments/{for(x=NR-1;x<=NR;x++)print a[x]}' filename| sed -n '/^$/,+1p'
выход
Alignments 747883433 76303046
Alignments 838333186 82982133