31

Vascom пишет:

Для этого sed вообще не нужен. Незачем построчно перебирать, если cut весь файл сразу может обработать.
Просто сделай так:

cat $file | cut -f1 -d:

А если просто на понимание, то прочитай это http://www.bash-scripting.ru/abs/chunks/index.html
И делай цикл на bash.

Для чего не нужен sed ? Вы меня совсем не поняли. Мне нужна определённая строка а не все вместе.
Скажите как заменить это:

sed -n '1 p' file
3.2.7. Запрещено оскорблять участников и отвечать на оскорбления в любой форме — прямой, косвенной или заочной.

32

yars пишет:
vovanvster пишет:

Ты против "cut"? Или отрицание относится к месту действия ? Или ты можешь сказать по заданному вопросу что-нибудь умное но стесняешься ? Или просто настроение плохое и гавкнуть хочется ?
P.S. Выпей водки

Но он там действительно не нужен. Это эквивалентно

cut -f1 -d: file

Разница только в том, что в первом случае cut работает с потоком (pipe), а во втором - с файлом напрямую. Ну да это к делу не относится и многим присутствующим известно.

Как это не нужен ? Не надо выдёргивать кусок из строки ! cut в скрипте выполняет свою функцию а sed свою.
Что чему эквивалентно ? Какие pipe ? Мне надо чтоб работало а не рассуждения. Если можно сделать:

sed -n '1 p' $snt_f | cut -f1 -d: 

без sed прекрасно но скажите как ?
Я сообщаю sed номер строки циферкой '1 p'. Пытался вместо неё писать переменную но не получилось.

3.2.7. Запрещено оскорблять участников и отвечать на оскорбления в любой форме — прямой, косвенной или заочной.

33

Вместо
'${var} p'
используй двойные кавычки
"$var p"
Одинарные кавычки блокируют раскрытие переменных.
Прекращай тыкать пальцем в небо и прочитай книгу по bash и sed.

34 (06.09.2013 13:03:51 отредактировано vovanvster)

Vascom пишет:

Вместо
'${var} p'
используй двойные кавычки
"$var p"
Одинарные кавычки блокируют раскрытие переменных.
Прекращай тыкать пальцем в небо и прочитай книгу по bash и sed.

Одинарные кавычки я использую для конкретного числа. Ты где там переменную увидел ?
Про скобки и кавычки знаю.

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 не кончатся строки.

3.2.7. Запрещено оскорблять участников и отвечать на оскорбления в любой форме — прямой, косвенной или заочной.

35 (13.09.2013 00:05:52 отредактировано vovanvster)

Всё, сам разобрался. Единственное что мне было нужно:
"Переписал решение много раз." Не актуально.

3.2.7. Запрещено оскорблять участников и отвечать на оскорбления в любой форме — прямой, косвенной или заочной.

36 (12.09.2013 22:17:32 отредактировано vovanvster)

Все ещё не могу успокоиться. У меня на сегодняшний день вот так получилось:

# Функция подстановки логина и пароля в файл ".fetchmailrc"
function fetch () {
# файл с почтами
snt_f="$HOME/file"
# вставка почты в нужную строку
    a=$(sed -n "$st p" $snt_f | cut -f1 -d:)
    echo $a | sed -e "2s/\".*\"/\"$a\"/g" -i $HOME/.fetchmailrc
# ставка пароля в нужную строку
    b=$(sed -n "$st p" $snt_f | cut -f2 -d:)
    echo $b | sed -e "3s/\".*\"/\"$b\"/g" -i $HOME/.fetchmailrc
    fetchmail
}

for st in {1..22}; do fetch
done

Вот так не очень глупо ?

3.2.7. Запрещено оскорблять участников и отвечать на оскорбления в любой форме — прямой, косвенной или заочной.

37

Разве что я бы добавил еще шифрование хранимых в открытом виде паролей, например, при помощи gnupg.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

38 (13.09.2013 02:45:22 отредактировано vovanvster)

yars пишет:

Разве что я бы добавил еще шифрование хранимых в открытом виде паролей, например, при помощи gnupg.

В моём случае не особо актуально, поскольку доступ к условному файлу со списком с логинами и паролями очень ограничен.
Они в очень домашней директории которая подключается с использованием ufed.
И это Gentoo Hardened.
Но мысль правильная. Однако gnupg использую только в командной строке. И ни разу в скриптах.
Как примерно это надо делать? У меня сложности с использованием скобок, кавычек, шаблонов и экранирующих символов.
Проще говоря с синтаксисом. Ну как всегда у начинающих. Посоветуйте почитать, пожалуйста что нибудь для побыстрее. Общее схватить и > понеслась. Сколько не пробовал учиться на учебниках, не получается. Как-то ближе спарринг/кумите.
Есть цель значит есть мотивация, в процессе реализации или сделал или понял что не твоё.

3.2.7. Запрещено оскорблять участников и отвечать на оскорбления в любой форме — прямой, косвенной или заочной.

39

Ну, вот один из вариантов использования gpg в скриптах, правда, всего лишь для подписывания и проверки подписи пакетов. Думаю, не составит труда разобраться.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

40

Угу, спасибо. Разберусь наверное.

3.2.7. Запрещено оскорблять участников и отвечать на оскорбления в любой форме — прямой, косвенной или заочной.

41 (13.09.2013 03:02:30 отредактировано vovanvster)

Ну да, примерно понятно. Я в скриптах часто использую kdialog. Он многое упрощает. Для сервера конечно не годится. Ещё раз спасибо.
А не посоветуете почитать? Кроме часто используемого. Я для себя использую man bash.

3.2.7. Запрещено оскорблять участников и отвечать на оскорбления в любой форме — прямой, косвенной или заочной.