Tag: perl

sed + пометить строку в случае пройденного слова

мы хотим пометить “#” совпадающую строку с помощью sed или perl line liner например мы хотим отметить все строки в файле, которые include слово DatePattern log4j.appender.DRFA.DatePattern=.yyyy-MM-dd ожидаемый результат #log4j.appender.DRFA.DatePattern примечание – если строка уже отмечена, она не добавит еще один знак «#» перед строкой

Вставить многострочный текст перед первой соответствующей строкой в ​​файле

мы хотим добавить следующие строки в файл log4j log4j.appender.DRFA=org.apache.log4j.RollingFileAppender log4j.appender.DRFA.MaxBackupIndex=100 log4j.appender.DRFA.MaxFileSize=10MB но эти строки должны быть перед первой строкой, содержащей слово DatePattern , независимо от того, помечена ли строка знаком #log4j.appender.DRFA.DatePattern=.yyyy-MM-dd или же log4j.appender.DRFA.DatePattern=.yyyy-MM-dd примечание – в случае, если слово DatePattern появляется в файле несколько раз, тогда три строки должны быть установлены только перед первой […]

Нужен awk / sed для замены значений внутри $ {}

Я пытаюсь сделать URL-тестирование, выбрав значения из файла env.properties. Например, мои env.properties будут выглядеть так a.host.name=wanx.com b.host.name=xyu.com c.host.name=${b.host.name} d.host.name=${c.host.name} url1=https://${d.host.name}/test url2=https://${a.host.name}/test2 Пока что я сделал – 1. так как есть “.” в файле я не смог сделать прямую замену. Поэтому я заменил точки подчеркиванием с помощью awk awk -F= -vOFS=”=” ‘gsub(/\./,”_”,$1)+1’ endpoint_test.txt Теперь мой файл […]

Поиск греческого из командной строки

Как я могу использовать perl в командной строке для печати только строк, содержащих греческие символы Юникода? Например, только вторая из следующих строк hullo, world χαῖρε, ὦ κόσμε Должна быть возможность использовать \p{Greek} а не явный диапазон (0370-03ff, 1f00-1fff). Методы без Perl также приветствуются, но я подозреваю, что sed, awk, grep не могут этого сделать?

Как добавить свойства в конце двух первых строк с двойной кавычкой?

Мы хотим добавить следующие свойства: -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=2M в двух первых строках, которые содержат слово – HBASE_MASTER_OPTS Пример до изменения : more ams-hbase-env-template.txt export HBASE_MASTER_OPTS=” -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly” export HBASE_MASTER_OPTS=” -XX:CMSInitiatingOccupancyFraction=71 -XX:+UseCMSInitiatingOccupancyOnly” export HBASE_MASTER_OPTS=” -XX:CMSInitiatingOccupancyFraction=72 -XX:+UseCMSInitiatingOccupancyOnly” export HBASE_MASTER_OPTS=” -XX:CMSInitiatingOccupancyFraction=73 -XX:+UseCMSInitiatingOccupancyOnly” Пример после изменения (ожидаемые результаты) : export HBASE_MASTER_OPTS=” -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=2M” export HBASE_MASTER_OPTS=” -XX:CMSInitiatingOccupancyFraction=71 […]

Как удалить из файла конфигурации переменную, которая не равна 100

Как удалить из файла конфигурации переменную / s hadoop.tasklog.totalLogFileSize , которые не равны 100 пример more file.conf hadoop.tasklog.totalLogFileSize=107 hadoop.tasklog.totalLogFileSize=10 hadoop.tasklog.totalLogFileSize=100 hadoop.tasklog.totalLogFileSize=189 hadoop.tasklog.totalLogFileSize=104 hadoop.tasklog.purgeLogSplits=true hadoop.tasklog.logsRetainHours=12 . . ожидаемый результат more file.conf hadoop.tasklog.totalLogFileSize=100 hadoop.tasklog.purgeLogSplits=true hadoop.tasklog.logsRetainHours=12 . .

Эквивалент «ssh-keyscan -H» в Solaris 10/11

Я создаю Perl-программу, которая добавляет указанный хост в файл known_hosts пользователя root. Программа работает в AIX и Linux, но не в Solaris, и, к сожалению, я не могу найти ее эквивалентную команду. Образец линии: system(“ssh-keyscan -H www.myserver.domain >> /.ssh/known_hosts”); Выход: ssh-keyscan: недопустимая опция – H Использование: ssh-keyscan [-v46] [-p port] [-T timeout] [-f file] [host […]

Удалите самые старые файлы в папке, если общий размер папки превышает 10 ГБ.

Следующий синтаксис удалит файлы в папке hive : /usr/bin/find /var/log/hive -type f -print -delete Я пытаюсь сделать следующее: Удалите самые старые файлы из /var/log/hive только если размер папки превышает 10G ПРИМЕЧАНИЕ. Процесс удаления будет остановлен, когда размер в папке куста равен 10 ГБ, поэтому процесс очистки начнется, если размер больше 10 ГБ. Можем ли мы […]

как убрать синтаксис с символами uniq из строки

у нас есть следующий файл конфигурации, env.gc.txt export SERVER_GC_OPTS=”-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:{{hbase_log_dir}}/gc.log-`date +’%Y%m%d%H%M’`” Мы пытаемся удалить -`date +’%Y%m%d%H%M’` из строки, содержащей SERVER_GC_OPTS sed -i ‘/SERVER_GC_OPTS/ s/-`date +’%Y%m%d%H%M’`//g’ или же sed ‘/SERVER_GC_OPTS/ s/-\`date +’%Y%m%d%H%M’\`//g’ но без успеха. Каков наилучший правильный подход для удаления синтаксиса – -`date +’%Y%m%d%H%M’` из строки? (Примечание: опция perl one liner также возможна) […]

perl + игнорирует строки с замечаниями и удаляет повторяющиеся строки со словом соответствия

Мы создаем следующий Perl один лайнер. Чтобы удалить двойные строки, кроме первой строки соответствия, вторая часть синтаксиса должна игнорировать строки с пометкой “#”. Пример: # more /tmp/test # abra_kadabra abra_kadabra abra_kadabra # perl -i -ne -e’next if /^#/; next if /abra_kadabra/ && ++$ok > 1; print’ /tmp/test # more /tmp/test # abra_kadabra На самом деле […]

Linux и Unix - лучшая ОС в мире.