string_number=`wc -l $file | cut -d ' ' -f1`
for i in `seq 1 $string_number`
do
sed -n '$i p' $file | cut -f2 -d:
done
Спасибо, сейчас попробую понять
опаньки... а я sed не пользую
Теперь всё откладывается на завтра. Гости пришли и жена шипит. Ща водку буду пить. Завтра к середине дня попробую.
Хэв э найс дей алл, анд найс уикенд.
string_number=`wc -l $file | cut -d ' ' -f1`
подсчитывает число строк в файле.
И используем это число для формирования цикла.
Точно, спасибо огромное, Вы меня сдвинули с мёртвой точки. Но эта жена у меня последняя, не могу с ней спорить. По этому до завтра.
Пытался найти кнопку "сказать пасибо но не нашёл". А как модераторов благодарят ? (это сразу юмор). Но я серьёзно.
string_number=`wc -l $file | cut -d ' ' -f1`
for i in `seq 1 $string_number`
do
sed -n '$i p' $file | cut -f2 -d:
done
Вопрос который я задал с самого начала так и остался всё остальное здесь написанное мне не нужно.
$string_number не могу правильно написать. sed выдаёт ошибку.
Команда в которую надо вставить переменную:
text
for i in $( sed -n '1 p' $file1 | cut -f1 -d: ); do
echo $i | <commands>
sed считывает первую строку из файла и отправляет на обработку.
Первая строка обозначается '1 p'. Единица и есть переменная. Мне надо запустить цикл со значением от 1 до 50 к примеру.
А ещё лучше от единицы до числа строк в файле. Именно это я не могу сделать.
[quote=vovanvster]Ты против "cut"? Или отрицание относится к месту действия ? Или ты можешь сказать по заданному вопросу что-нибудь умное но стесняешься ? Или просто настроение плохое и гавкнуть хочется ?
P.S. Выпей водки
Но он там действительно не нужен. Это эквивалентно
text
cut -f1 -d: file
Разница только в том, что в первом случае cut работает с потоком (pipe), а во втором - с файлом напрямую. Ну да это к делу не относится и многим присутствующим известно.[/quote]
Как это не нужен ? Не надо выдёргивать кусок из строки ! cut в скрипте выполняет свою функцию а sed свою.
Что чему эквивалентно ? Какие pipe ? Мне надо чтоб работало а не рассуждения. Если можно сделать:
text
sed -n '1 p' $snt_f | cut -f1 -d:
без sed прекрасно но скажите как ?
Я сообщаю sed номер строки циферкой '1 p'. Пытался вместо неё писать переменную но не получилось.
Вместо
'${var} p'
используй двойные кавычки
"$var p"
Одинарные кавычки блокируют раскрытие переменных.
Прекращай тыкать пальцем в небо и прочитай книгу по bash и sed.
Вместо
'${var} p'
используй двойные кавычки
"$var p"
Одинарные кавычки блокируют раскрытие переменных.
Прекращай тыкать пальцем в небо и прочитай книгу по bash и sed.
Одинарные кавычки я использую для конкретного числа. Ты где там переменную увидел ?
Про скобки и кавычки знаю.
text
st="1"
function emlac () {
for i in $( sed -n "$st p" file1 | cut -f1 -d: ); do
echo $i | sed <commands> -i file2
done
}
Наверное мне надо было с самого начала задать вопрос конкретней.
Что я должен написать в st="1" вместо номера строки? $st должно принимать значения от одного до пятидесяти к примеру.
Или в идеале от одного до тех пор пока в файле file1 не кончатся строки.
Разве что я бы добавил еще шифрование хранимых в открытом виде паролей, например, при помощи gnupg.
В моём случае не особо актуально, поскольку доступ к условному файлу со списком с логинами и паролями очень ограничен.
Они в очень домашней директории которая подключается с использованием ufed.
И это Gentoo Hardened.
Но мысль правильная. Однако gnupg использую только в командной строке. И ни разу в скриптах.
Как примерно это надо делать? У меня сложности с использованием скобок, кавычек, шаблонов и экранирующих символов.
Проще говоря с синтаксисом. Ну как всегда у начинающих. Посоветуйте почитать, пожалуйста что нибудь для побыстрее. Общее схватить и > понеслась. Сколько не пробовал учиться на учебниках, не получается. Как-то ближе спарринг/кумите.
Есть цель значит есть мотивация, в процессе реализации или сделал или понял что не твоё.
Ну, вот один из вариантов использования gpg в скриптах, правда, всего лишь для подписывания и проверки подписи пакетов. Думаю, не составит труда разобраться.