URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 87287
[ Назад ]

Исходное сообщение
"Как перенапрвить вывод команды в файл"

Отправлено тшч81 , 16-Ноя-09 08:47 
например ввожу команду:
[root@nix81 /var/named/etc/namedb]# tail /var/log/named.log
1Nov 16 11:41:14 nix81 named[1172]: running
2Nov 16 11:41:28 nix81 named[1172]: loading configuration from '/etc/namedb/named.conf'
3Nov 16 11:41:28 nix81 named[1172]: using default UDP/IPv4 port range: [49152, 65535]
4Nov 16 11:41:28 nix81 named[1172]: using default UDP/IPv6 port range: [49152, 65535]
5Nov 16 11:41:28 nix81 named[1172]: the working directory is not writable
6Nov 16 11:41:36 nix81 named[1172]: loading configuration from '/etc/namedb/named.conf'
7Nov 16 11:41:36 nix81 named[1172]: using default UDP/IPv4 port range: [49152, 65535]
8Nov 16 11:41:36 nix81 named[1172]: using default UDP/IPv6 port range: [49152, 65535]
9Nov 16 11:41:36 nix81 named[1172]: the working directory is not writable
10Nov 16 11:42:23 nix81 named[1172]: host unreachable resolving 'suggest.yandex.net/A/IN': 2001:503:231d::2:30#53
[root@nix81 /var/named/etc/namedb]#

как мне весь этот вывод записать в файл например /root/mylogs.my
и второе как мне записать в файл только строку 5,6,7 и 8 а остальные не надо


Содержание

Сообщения в этом обсуждении
"Как перенапрвить вывод команды в файл"
Отправлено zd3n , 16-Ноя-09 09:46 
>[оверквотинг удален]
>
>8Nov 16 11:41:36 nix81 named[1172]: using default UDP/IPv6 port range: [49152, 65535]
>
>9Nov 16 11:41:36 nix81 named[1172]: the working directory is not writable
>10Nov 16 11:42:23 nix81 named[1172]: host unreachable resolving 'suggest.yandex.net/A/IN': 2001:503:231d::2:30#53
>[root@nix81 /var/named/etc/namedb]#
>
>как мне весь этот вывод записать в файл например /root/mylogs.my
>и второе как мне записать в файл только строку 5,6,7 и 8
>а остальные не надо

Перенаправит в файл  
tail /var/log/named.log >  /root/mylogs.my

для вывода конкретных строк юзать команды tail и head  с опцией -n

для выдёргивания конкретных строк можно так
head -n 5 /root/mylogs.my | tail -n 1  > file.new  
так в файл file.new запишется только 5 строчка.

по данному алгоритму можно построить затем более сложные конструкции.... как уже душе угодно...

Например, такая конструкция запишет в файл file.new 5,7,9 строки из файла /root/mylogs.my

#head -n 5 /root/mylogs.my | tail -n 1  > file.new; head -n 7 /root/mylogs.my | tail -n 1  >> file.new; head -n 9 /root/mylogs.my | tail -n 1  >> file.new


"Как перенапрвить вывод команды в файл"
Отправлено Pahanivo_tmp , 16-Ноя-09 09:56 
вы бателько забыть про
./run > file 2>&1
часто помогает правдо мало кто понимает ))


"Как перенапрвить вывод команды в файл"
Отправлено zd3n , 16-Ноя-09 10:20 
>вы бателько забыть про
>./run > file 2>&1
>часто помогает правдо мало кто понимает ))

Да нет не забыл. :)))
Задача была не перенаправить сообщения и ошибки от программы(скрипта и т.п), а выдернуть определённые строки(по номеру строки) из имеющегося и доступного файла.... в новый файл.


"Как перенапрвить вывод команды в файл"
Отправлено аноним , 17-Ноя-09 14:44 
>Задача была не перенаправить сообщения и ошибки от программы(скрипта и т.п), а
>выдернуть определённые строки(по номеру строки) из имеющегося и доступного файла.... в
>новый файл.

Комбинация tail и head, либо sed, либо awk.

% jot 10 1
1
2
3
4
5
6
7
8
9
10

Например, нужны строки 5-7:

% jot 10 1 | tail +5 | head -3
5
6
7
% jot 10 1 | sed -n '5,7p'
5
6
7
% jot 10 1 | awk 'NR>=5 && NR<=7 {print}'
5
6
7