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

После выполнения следующей команды я добираюсь:

[root@yukiko /]# find / -iname .bashrc
/home/clamav/.bashrc
/home/vpopmail/.bashrc
/etc/skel/.bashrc
/root/.bashrc

Но я хотел бы иметь команду, которая печатает определенную строку путем предоставления команды номер строки, например:

[root@yukiko /]# find / -iname .bashrc | getline(2)
/home/vpopmail/.bashrc

Есть ли на CentOS такая команда?

1
задан 08.02.2010, 13:54

3 ответа

Вы могли использовать комбинацию головы и хвоста:

find / -iname .bashrc | head -n 2 | tail -n 1

это возвратит последнюю одну строку первых двух строк (так вторая строка). Вы смогли добираться head сделать задание самостоятельно, если это имеет опцию для пропуска X количества строк (проверка man head). Это также не вряд ли, что существует другой инструмент, чтобы сделать задание в наборе, который является coretulis пакетом, включенным большинством вариантов Linux, таким образом, могло бы стоить просканировать руководство для этой группы инструментов (см. http://www.gnu.org/software/coreutils/manual/html_node/index.html или Вашу локальную копию), быстрое сканирование. Это достойное внимания так или иначе, если только обновить себя на том, какие инструменты обычно доступны.

4
ответ дан 12.12.2019, 07:48
find / -name .bashrc | sed -n '2{p;q}'
4
ответ дан 12.12.2019, 07:48

Вот кнут сценария Perl, чтобы сделать это

#!/usr/bin/perl
use strict; 
use warnings;

my $ln = $ARGV[0];
#note that further evolution may have a regular file here...
my $line = 1; 
my $wantedline;
while(<STDIN>)
{
  $wantedline = $_;
  last if($line++ == $ln);
}
print $wantedline;
1
ответ дан 12.12.2019, 07:48

Теги

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