использование GNU SED для комментирования строки и добавления новой строки

Вы также можете определить нужные каталоги следующим образом:

find. -maxdepth 2 -path '*/*/wanted.txt' -type f \
  -execdir test ! -f unwanted.txt \; -execdir pwd \;

Это работает следующим образом:

  • Ищем записи до глубины 2.
  • Параметр -pathдополнительно ограничивает их глубину ровно 2 из-за наличия 2 косых черт, так как максимальная глубина не позволяет идти дальше, а 2 явных косых черты не позволяют углубиться ниже 2.
  • Запись Wanted.txt, найденная на уровне глубины 2, должна быть обычным файлом, обеспеченным-type f
  • Параметр -execdirповысит уровень операции до каталога, в котором находится требуемый.txt, и, следовательно, команда testбудет искать там нежелательный файл.
  • Затем нужно просто распечатать каталог (, повышенный из-за -execdir), где нежелательный файл не был найден.
  • Не останавливаясь на этом, скажем, что каталог может содержать конкретный файл только один раз, следовательно, операции -execdirвыполняются один раз / каталог и только в тех каталогах, которые наверняка содержат обычные файлы Want.txt.
0
04.06.2019, 14:02
2 ответа

Я пробовал использовать приведенную ниже команду sed, и она работала отлично

команда

sed -i '/^Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-c/s/.*/#&\nCiphers abc-123,def-456,ghi-789/g' filename

выход

#Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Ciphers abc-123,def-456,ghi-789
0
28.01.2020, 03:37
sed -i -n 'p; s/^Ciphers/#&/p' /etc/ssh/sshd_config

-iна месте

-nничего не печатает, если явно не напечатано

/pв конце строки поиска принудительно печатает, эффективно переопределяя -nв совпадающей строке

0
28.01.2020, 03:37

Теги

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