Можно использовать sed
. Как это:
sed -e 's/Result:\(.*\)\..*$/\1/g' file_name
если Вы хотите сохранить результат в том же файле, можно добавить -i
кому: sed
аргументы
в sed $
последняя строка так для удаления последней строки:
sed '$d' <file>
sed '$d' file
на самом деле не изменяет файл; это просто распечатывает содержание файла минус последняя строка. Так sed '$d' file; sed '$d' file
распечатает содержание файла дважды, минус последняя строка каждый раз. delete-the-last-two-lines эквивалент sed '$d' file
sed '$d' file | sed '$d'
.
– ruakh
24.10.2012, 21:48
sed -n '1{h;n;}; $q; x; p;'
. Я надувал это, мы не можем просто сделать sed '$-1,$d'
.
– dubiousjim
24.10.2012, 23:24
cat file.txt | head -n -1 > new_file.txt
Остерегайтесь, кажется, в зависимости от последней строки file.txt
(если это заканчивается EOF
, или \n
и затем EOF
), количество строк в new_file.txt
может быть то же (как file.txt
) после этой команды (это происходит, когда существует нет \n
) - в любом случае содержание последней строки удалено.
Кроме того, обратите внимание, что необходимо использовать второй (промежуточный) файл. Если Вы кошка и перенаправление в тот же файл, Вы сотрете его.
head -n -1 file.txt > new_file.txt
. Отметьте хотя то отрицание количества на head -n
только доступно для некоторых реализаций head
. Например, это не работает на FreeBSD или на версию BusyBox head
.
– dubiousjim
25.10.2012, 12:50
head -n -1 file.txt > new_file.txt
лучше. Это работает тот же путь относительно моих двух комментариев (то же количество строк, и, стирание на том же файле). Что касается отрицательного аргумента, такие различия время от времени происходят между Unixes, и они часто печальны, потому что Вы ожидаете, что это будет той же командой полностью (и почему не был бы Вы - то же имя и цель!) - во всяком случае, положительная сторона. (Я использую Debian.)
– Emanuel Berg
25.10.2012, 20:38
head --lines=-1
. Я сначала споткнулся через эту возможность в странице справочника для головы в SLES11SP2-системе (coreutils-8.12-6.23.1)
tail
и head
часть coreutils
- об/мин (по крайней мере, для основанных систем об/мин).
Согласно журналу изменений coreutils, этот синтаксис поддерживается начиная с coreutils-версии 5.0.1
Плохие новости: Согласно RH5-странице-справочника не описана эта опция
Хорошие новости: Это работает с RH5 (так в Вашем случае: это работает - по крайней мере, с текущей версией RH5).
rpm -q coreutils
показывает мне (на CentOS 5.8): coreutils-5.97-34.el5_8.1
Я не уверен если RH5.5. уже имеет coreutils-версию, которая поддерживает его. Но 5.5 имеет EoLed так или иначе.
sed '$d' ~/path/to/your/file/name
sed -i '' -e '$ d' ~/path/to/your/file/name
На Mac (BSD head/tail )вы можете использовать:
cat file.txt | tail -r | tail -n +2 | tail -r
sed -i '$d' <file>
отредактировать файл на месте. – WanderingMind 22.05.2017, 21:59