Awk сравнить текущий со следующим

Вы не упомянули свою ОС....

Это прекрасно работает с современной реализацией находки, как от FreeBSD или с sfind .

find/my/directory -name '* .jpg' -mtime -15s -mtime + 2s

Sfind является частью инструментов Schily: http://sourceforge.net/projects/schilytools/files/

ВНИМАНИЕ: я только что обнаружил проблему в sfind . Если аргументы -mtime меньше 60s, они будут работать неправильно, так как в данный момент время файла сравнивается с меткой времени 60 секундах в будущем, которая была первоначально вычислена для переключения года для -ls .

BTW: -not не принадлежит find , это непортящийся GNUism.

-121--25968-

Просто создайте каталог, например /usr/shared и предоставьте доступ всем:

sudo mkdir /usr/shared && sudo chmod 777 /usr/shared

Теперь каждый может писать в этот каталог, и больше ничего не было изменено (в отношении личных файлов пользователя и т.д.). Конечно, это означает, что любой пользователь сможет удалить любые файлы в нем, но вы сказали, что разрешения, управление доступом и перезапись не проблема.

-121--111272-

Спасибо, все! Вы правы, я должен поставить свой собственный R 'путь на первое место.

И мне жаль, что я совершил еще одну ошибку.

Я использовал оболочку C!

Я понял, что когда я «получаю» .bash_profile, Я получил

«if: Expression Syntax error»

Я искал его, обнаружил: https://stackoverflow.com/questions/14440105/bashrc-if-expression-syntax-error кто-то указал, что «» if: Expression Syntax «» не является ошибкой bash даст вам. Возможно, ваша раковина не бешеная ". Поэтому я проверил свою оболочку:

«echo $0»

получил:

«-csh #!!!»

Затем я создал .cshrc:

{setenv PATH $HOME/Programme/bin/:$PATH}

А затем вышел из системы и снова вошел в систему. Проблема решена!

0
16.11.2018, 02:45
3 ответа

Awkраствор:

awk '{
         items++;
         if ($1 == f1) { print; items = 0 }
         else if (items == 2) { sub(/^[[:space:]]*/, "", prev); print prev; items-- }
     }
     { prev = $0; f1 = $1 }' file

Выход:

puloto_cluster_b_02_sys puloto_cluster_b_generic_cg
puloto_cluster_b_02_temp
puloto_cluster_b_04_sys puloto_cluster_b_generic_cg
puloto_cluster_b_04_temp
puloto_cluster_b_06_sys puloto_cluster_b_generic_cg
puloto_cluster_b_08_sys puloto_cluster_b_generic_cg
puloto_cluster_b_10_sys puloto_cluster_b_generic_cg
1
28.01.2020, 02:43

Использование инструмента GNU sed:

sed -Ee '
   $!N
   /^[[:blank:]]*([^[:blank:]]{1,})([[:blank:]]|\n)(.*\n){0,1}\1([[:blank:]]|$)/D
   s/^[[:blank:]]*//;P;D
'  input_file

Пояснение:

  • $!Nдобавить следующую строку в пространство шаблонов, если она не последняя.
  • /^[[:blank:]]*([^[:blank:]]{1,})([[:blank:]]|\n)(.*\n){0,1}\1([[:blank:]]|$)/D

    • Первое поле текущей строки соответствует первому полю следующей строки, затем первая строка удаляется из пространства шаблонов и возвращается к началу сценария sed с усеченным пространством шаблонов.
    • OTW, мы печатаем первую строку, затем вырезаем ее и переходим обратно к началу сценария sed и применяем команды sed к усеченному пространству шаблонов.

Выход:

puloto_cluster_b_02_sys puloto_cluster_b_generic_cg
puloto_cluster_b_02_temp
puloto_cluster_b_04_sys puloto_cluster_b_generic_cg
puloto_cluster_b_04_temp
puloto_cluster_b_06_sys puloto_cluster_b_generic_cg
puloto_cluster_b_08_sys puloto_cluster_b_generic_cg
puloto_cluster_b_10_sys puloto_cluster_b_generic_cg
0
28.01.2020, 02:43

Другой awk

awk '{
b=$1
sub("^[[:blank:]]*","")
a=$0
while(getline) {
    if($1!=b)
        print a
    sub("^[[:blank:]]*","")
    a=$0
    b=$1
    }
print a
}' infile
0
28.01.2020, 02:43

Теги

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