После выполнения следующей команды я добираюсь:
[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 такая команда?
Вы могли использовать комбинацию головы и хвоста:
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 или Вашу локальную копию), быстрое сканирование. Это достойное внимания так или иначе, если только обновить себя на том, какие инструменты обычно доступны.
Вот кнут сценария 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;