Автор Гюнель Самедова задал вопрос в разделе Другие языки и технологии
Bash: awk, переменные, параметр... и получил лучший ответ
Ответ от Extrn[гуру]
$c экранируется одинарными кавычками, в вашем примере нужно делать примерно так
....
awk "{for(i=1;i<=NF;i++)
if($i==$($c))
printf $i;
printf "
";}"
....
но поставленную задачу лучше будет решить вот так:
script.awk:
BEGIN {
for (i = 1; i < ARGC; i++) {
lines[ARGV[ i ]] = 1;
delete ARGV[ i ];
}
}
{ if (lines[NR]) {print} }
# awk -f script.awk 1 2 4 6 < /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
однако вместо sh+awk проще будет использовать perl
1) строки выводятся в порядке появления без повторов
#!/usr/bin/perl
my %lines;
$lines{$_} = 1 foreach @ARGV;
while(<STDIN>) {
print if $lines{$.};
}
2) строки выводятся в строгом порядке, необходимое количество раз
#!/usr/bin/perl
my %lines;
$lines{$_} = 1 foreach @ARGV;
while(<STDIN>) {
$lines{$.} = $_ if $lines{$.};
}
print $lines{$_} foreach(@ARGV);
3) то же, что и в предыдущем варианте, но данные перед обработкой загружаются в память целиком (подходит для небольших файлов)
#!/usr/bin/perl
my @strings = <STDIN>;
print $strings[$_ - 1] foreach(@ARGV);
если что непонятно - пишите.
PS: побольше бы таких вопросов 🙂
extrn
Гуру
(3991)
всегда пожалуйста 🙂
1) ввести данные - количество слагаемых n и число x;
2) присвоить переменной, в которой будем хранить степени sin x, значение 1; S := 0;
3) присвоить параметру цикла значение 1;
4) если значение параметра цикла меньше n, перейти к следующему пункту, иначе к п. 9;
5) вычислить очередную степень sin x;
6) добавить вычисленное значение к сумме;
7) увеличить параметр цикла на 1;
8) перейти к п. 4;
9) вывести на печать сумму S;
10) конец.
{Программа вычисления суммы степеней sin x}
Program Summa;
Var S, X, Pr : Real; N, I : Integer;
Begin
Write('Введите число слагаемых и x: '); ReadLn(N, X);
Pr := 1; {в этой переменной хранятся последовательные степени sin x}
S := 0;
For I := 1 To N Do
Begin
Pr := Pr * Sin(X); {Очередная степень Sin(x)}
S := S + Pr
End;
WriteLn('Сумма равна ', S : 7 : 4)
End.
Помогите найти песню (house ) в которой часто повторяются слова on this beach , beach , beach , beach ...
David Guetta- I am in Miami beach
Sex on the beach
Sonic Palms- On the beach
подробнее...
Как называется песня, где припев такой: "Бич ама баус"
не эта??? PTAF - Boss Ass Bitch (VEVO Version)
подробнее...
Чем отличаються турецкие духи от ОАЭ
Турецкие духи отличаются от духов производства ОАЭ.
Духи ОАЭ - не на спиртовой основе, а
подробнее...
Помогите с выбором болгарки (вн.)
Круг 125 лучше. Мощность надо 800 - 850 Вт и более. Очень рекомендую с плавным пуском и
подробнее...
Список танцевальных песен для вечеринки
Basshunter - Saturday
Everybody Dance (Roma Kenga Radio Edit)
LMFAO - I`m sexy and I know
подробнее...
Будет ли Dragon Age Inquisition в стиме?
Нет, потому что это игра от EA, приобрести можно в origin.
подробнее...
Ребята посоветуйте музыку в стиле Secret Service - Aux Deux Magots нравятся такие композиции
Послушай Mike & the Mechanics, Yello, Toy the Matinee, Boyz || Men, Genesis,...
А вообще Secret
подробнее...
духовка Bosch HBA42S350R
Отзывы есть, ругают хлипкие ручки + то что имеет 2 стекла и стоит около 17 т. руб. Можно посмотреть
подробнее...
Дайте плиз ПОЛНЫЙ перевод песни Bacchikoi (Dev parade)
Dev Parade – Bacchikoi
Bacchikoi Bacchikoi baby!
Bacchikoi
Bacchikoi
Oh my God! Oh
подробнее...
нужен bash скрипт подсчёта количества файлов определённого диапазона размеров в папке (1,2,4,8,16,32 кб)
Если по быстрому и без всяких нудных проверок, то примерно так :
#!/bin/bash
S1k=1024
подробнее...
Помогите пожалуйста найти перевод песни "Gessekai" группы BUCK-TICK хотя бы на английский
BUCK-TICK - Gessekai
aka kiiro himawari daidai konjou ajisai
aka kiiro himawari
подробнее...
acc-store. ru, хочу купить тут nfs 2016,кто покупал какую либо игру (с аккаунтом), развод сайт или можно купить ?
что мешает купить её в проверенных местах
подробнее...
Подскажите скачал первый раз Компас 3d v15,там 5 установочных файлов AEC,Base,ECAD,MCAD,viewer v15. продолжение внутри..
Base - это базовая часть. Ее обязательно устанвливать.
MCAD - машиностроительная конфигурация,
подробнее...