formail[119515] прочитает почтовый файл и может выводить заголовки из конкретного сообщения через пропуск и общие параметры. Это предполагает, что сообщения были доставлены в известный файл. Если вы хотите архивировать все сообщения, то это будет подходящим инструментом.
procmail[119517] больше подходит для архивирования сообщений по мере их поступления. Его можно легко настроить на отправку копии на другой адрес во время доставки. Существуют стандартные методы, позволяющие избежать блокировки почты и пропустить определенные типы сообщений.[119090].
sed 's/ENUM_NAME\.\(.*\)\.toInt()/ENUM_NAME.\1/g'
-121--146364- Вы, кажется, хотите изменить все вхождения
TRANF_FIELD.some_enum_value.toInt()
на
TRANF_FIELD.that_enum_value
, оставляя другие перечисления (например, Trang_field.trang_value.toint ()
)
и другие методы (например, tranf_field.tranf_value.length ()
)).
Это кажется простой:
sed 's/\(TRANF_FIELD\.[A-Za-z0-9_]*\)\.toInt()/\1/'
где
[A-ZA-Z0-9 _] *
- любое количество буквенно-цифровых символов (включая подчеркивание).
Это предназначено для сопоставления любого достоверного значения перечисления.
На самом деле [A-ZA-Z _] [A-ZA-Z0-9 _] *
будет лучше,
Поскольку [A-ZA-Z0-9 _] *
может сопоставить пустую строку или одно начало с цифрами. \ (
... \)
Группы название перечисления ( tranf_field
), буквальный период ( \.
),
и значение перечисления (от первой пули). \ 1
означает «заменить полную строку, которую вы нашли с первой группой»,
I.e. Откажитесь от .toint ()
. g
(глобальный) после последней косынки. Tranf_Field. Tranf_value
.
Исправление этого осталось как упражнение. Это не будет справиться с выражениями, которые разбиты на линии; E.G.,
i = tranf_field
.Tranf_value.toomt ();
Это сложнее исправить.
Спасибо за все ваши помощи. Я добавил -i из одного ответа, включая путь ко всем файлам Java, к тому, что предлагает G-Man, и он работает. Если вы, ребята, находятся на Лонг-Айлере, я куплю тебе пиво. Что спас меня куча времени.
sed -i 's/\(TRANF_FIELD\.[A-Za-z0-9_]*\)\.toInt()/\1/g'
В зависимости от вашей операционной системы, inline (-i
) sed
может сделать следующее:
sed -i 's:\.toInt():::' имя файла
Где он просто заменит экземпляр ".toInt()" на "" - .
избавляется, чтобы не действовать как дикая карта.
Так как вы упоминаете несколько файлов, то вам придется зациклить эту команду, искать все файлы в текущем каталоге и подкаталогах:
find . -тип f -exec sed -i 's:\.toInt():::' {} \;
Однако, это приведет к ошибке, если имена файлов будут содержать пробелы, поэтому мы можем использовать команду xargs
для решения этой проблемы, которая поместит кавычки вокруг всех имён файлов:
find . -тип f | xargs -I{} sed -i 's:\.toInt():::' "{}"
Однако, это также выберет и скомпилированные файлы, так что, чтобы избежать их, мы можем использовать полезную возможность в perl
, чтобы проигнорировать их:
find . -тип f | perl -nle 'print if -T' | xargs -I{} sed -i 's:\.toInt()::' "{}"
Если все входные файлы формируются одинаково, то для простого решения проблемы:
awk '/^ [a-Z ]/{ print $1} 'имя файла
С помощью carrat ( ^
) будут выбраны только записи, которые имеют символ в начале каждой строки. Затем распечатайте только первое поле, игнорируя значение =
.
Для этого вам не нужна система.
Я хотел бы знать, кто вошел в систему с тех пор, когда
Используйте , кто
$ who
jimmij tty7 2014-09-25 01:39 (:0)
jimmij pts/0 2014-09-25 01:39 (:0)
jimmij pts/2 2014-09-28 22:14 (:0)
или даже лучше w
, чтобы получить дополнительную информацию
$ w
jimmij tty7 25Sep14 12days 4:09m 5:24 sawfish
jimmij pts/0 25Sep14 53:43 8.81s 32:32 /usr/bin/python2.7 /usr/lib/python-exec/python2.7/ter
jimmij pts/2 28Sep14 8days 45.08s 2.45s /bin/zsh
Какие процессы в настоящее время выполняются под его управлением
используйте ps -u user
$ ps -u jimmij
PID TTY TIME CMD
352 ? 00:00:01 systemd
353 ? 00:00:00 (sd-pam)
359 ? 00:05:24 sawfish
372 ? 00:00:00 dbus-launch
373 ? 00:00:00 dbus-daemon
375 ? 00:00:16 sawfishpager
377 ? 00:32:32 terminator
...
-121--157770- sed 's/ENUM_NAME\.\(.*\)\.toInt()/ENUM_NAME.\1/g'