The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"передача текстовой переменной в awk "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"передача текстовой переменной в awk "  –1 +/
Сообщение от DiJey email(ok) on 06-Ноя-14, 19:27 
Подскажите пожалуйста как передать текстовую переменную в awk? С числовыми проблем не возникает выдаются нормально.
Скрипт:
#!/bin/bash
USERS="user0 user1 user2 user3 useretc"
FILES=`ls passwd.*`
for f in $FILES
do
i=1
echo $f
for u in $USERS
do
name=`grep $u user_login.txt | awk '{ print $4 }'`
#echo $name
#Эхо выводит нечто: Фамилия И.О.
grep $u $f | gawk -F: '{ print '$i'";","12.09.2011;",'$name'";",$1";","users;",$7";",$3";","Текст" }'
let "i=i+1"
done
echo
done

Ожидается что скрипт выведет нечто:
passwd.filename
1; 12.09.2014; Фамилия И.О.0; user0; users; /bin/csh; 1111; Текст
2; 12.09.2014; Фамилия И.О.1; user1; users; /bin/csh; 1112; Текст
3; 12.09.2014; Фамилия И.О.2; user2; users; /bin/csh; 1113; Текст
4; 12.09.2014; Фамилия И.О.3; user3; users; /bin/csh; 1114; Текст
5; 12.09.2014; Фамилия И.О.etc; useretc; users; /bin/csh; 1115; Текст

Выводит:
passwd.filename
1; 12.09.2014; ; user0; users; /bin/csh; 1111; Текст
2; 12.09.2014; ; user1; users; /bin/csh; 1112; Текст
3; 12.09.2014; ; user2; users; /bin/csh; 1113; Текст
4; 12.09.2014; ; user3; users; /bin/csh; 1114; Текст
5; 12.09.2014; ; useretc; users; /bin/csh; 1115; Текст

если делаю:
например
name=2, то в соответсвующих местах выводит 2
Сделал вывод что awk у меня отображает только числовые данные которые в него попали из вне, как сделать что бы отобразил текстовые?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "передача текстовой переменной в awk "  +/
Сообщение от Led (ok) on 07-Ноя-14, 01:57 
Зачем здесь awk?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "передача текстовой переменной в awk "  +/
Сообщение от Pahanivo (ok) on 07-Ноя-14, 07:58 
> Зачем здесь awk?

что вообще делает это скрипт, вернее не скрипт а набор команд )))


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "передача текстовой переменной в awk "  +/
Сообщение от DiJey email(ok) on 07-Ноя-14, 14:26 
>> Зачем здесь awk?
> что вообще делает это скрипт, вернее не скрипт а набор команд )))

Выбирате из файлов passwd логины и показывает ФИО их пользователей, ну считает их еще и некоторые другие параметры тоже показывает.

user_login.txt # В формате: login ФИО , где ФИО 4 параметр в этом файле (через пробел).

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

6. "передача текстовой переменной в awk "  +/
Сообщение от Pahanivo (ok) on 07-Ноя-14, 19:03 
>> что вообще делает это скрипт, вернее не скрипт а набор команд )))
> Выбирате из файлов passwd логины и показывает ФИО их пользователей, ну считает
> их еще и некоторые другие параметры тоже показывает.
> user_login.txt # В формате: login ФИО , где ФИО 4 параметр в
> этом файле (через пробел).

очень внятно сформулировано ...

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

3. "передача текстовой переменной в awk "  +/
Сообщение от DiJey email(ok) on 07-Ноя-14, 14:21 
> Зачем здесь awk?

А, какой еще вариант выдать строку с нужными подстановками?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

7. "передача текстовой переменной в awk "  +/
Сообщение от Led (ok) on 07-Ноя-14, 21:39 
>> Зачем здесь awk?
> А, какой еще вариант выдать строку с нужными подстановками?

man sed

man grep

man cut

man join

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

8. "передача текстовой переменной в awk "  –1 +/
Сообщение от DiJey (ok) on 09-Ноя-14, 01:34 
>>> Зачем здесь awk?
>> А, какой еще вариант выдать строку с нужными подстановками?
> man sed
> man grep
> man cut
> man join

Где ответ то? Умный что ли? :)

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

10. "передача текстовой переменной в awk "  +/
Сообщение от Led (ok) on 09-Ноя-14, 02:24 
>>>> Зачем здесь awk?
>>> А, какой еще вариант выдать строку с нужными подстановками?
>> man sed
>> man grep
>> man cut
>> man join
> Где ответ то?

Смотри выше

> Умный что ли? :)

Да. Тебя не спрашиваю - и так понятно.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

5. "передача текстовой переменной в awk "  +/
Сообщение от тень_pavel_simple on 07-Ноя-14, 16:58 
>[оверквотинг удален]
> 1; 12.09.2014; ; user0; users; /bin/csh; 1111; Текст
> 2; 12.09.2014; ; user1; users; /bin/csh; 1112; Текст
> 3; 12.09.2014; ; user2; users; /bin/csh; 1113; Текст
> 4; 12.09.2014; ; user3; users; /bin/csh; 1114; Текст
> 5; 12.09.2014; ; useretc; users; /bin/csh; 1115; Текст
> если делаю:
> например
> name=2, то в соответсвующих местах выводит 2
> Сделал вывод что awk у меня отображает только числовые данные которые в
> него попали из вне, как сделать что бы отобразил текспеременно

В awk передаётся значение переменной с помощью ключика -v.  Кроме чтения манов силььно рекомендую .... код скрипта ужасен

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "передача текстовой переменной в awk "  +/
Сообщение от DiJey (ok) on 09-Ноя-14, 01:38 
>[оверквотинг удален]
>> 3; 12.09.2014; ; user2; users; /bin/csh; 1113; Текст
>> 4; 12.09.2014; ; user3; users; /bin/csh; 1114; Текст
>> 5; 12.09.2014; ; useretc; users; /bin/csh; 1115; Текст
>> если делаю:
>> например
>> name=2, то в соответсвующих местах выводит 2
>> Сделал вывод что awk у меня отображает только числовые данные которые в
>> него попали из вне, как сделать что бы отобразил текспеременно
> В awk передаётся значение переменной с помощью ключика -v.  Кроме чтения
> манов силььно рекомендую .... код скрипта ужасен

Можешь написать так что бы выдал то что нужно? У меня с -v не получилось, пробовал, ман читал.
Решил проблему с помощью sed (в тот день, еще когда писал), но не кошерно как то, хочу понять как сделать все awk.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

11. "передача текстовой переменной в awk "  +/
Сообщение от тень_pavel_simple on 09-Ноя-14, 10:12 
>[оверквотинг удален]
>>> например
>>> name=2, то в соответсвующих местах выводит 2
>>> Сделал вывод что awk у меня отображает только числовые данные которые в
>>> него попали из вне, как сделать что бы отобразил текспеременно
>> В awk передаётся значение переменной с помощью ключика -v.  Кроме чтения
>> манов силььно рекомендую .... код скрипта ужасен
> Можешь написать так что бы выдал то что нужно? У меня с
> -v не получилось, пробовал, ман читал.
> Решил проблему с помощью sed (в тот день, еще когда писал), но
> не кошерно как то, хочу понять как сделать все awk.

awk -v asd=1 '{print asd}'

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

12. "передача текстовой переменной в awk "  +/
Сообщение от DiJey (ok) on 09-Ноя-14, 13:08 
>[оверквотинг удален]
>>>> name=2, то в соответсвующих местах выводит 2
>>>> Сделал вывод что awk у меня отображает только числовые данные которые в
>>>> него попали из вне, как сделать что бы отобразил текспеременно
>>> В awk передаётся значение переменной с помощью ключика -v.  Кроме чтения
>>> манов силььно рекомендую .... код скрипта ужасен
>> Можешь написать так что бы выдал то что нужно? У меня с
>> -v не получилось, пробовал, ман читал.
>> Решил проблему с помощью sed (в тот день, еще когда писал), но
>> не кошерно как то, хочу понять как сделать все awk.
> awk -v asd=1 '{print asd}'

Я ж писал цифровые значения и без -v передались, текстовые не передались, и у меня внешняя переменная а не конретное значение.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "передача текстовой переменной в awk "  +/
Сообщение от тень_pavel_simple on 09-Ноя-14, 15:30 
>[оверквотинг удален]
>>>>> него попали из вне, как сделать что бы отобразил текспеременно
>>>> В awk передаётся значение переменной с помощью ключика -v.  Кроме чтения
>>>> манов силььно рекомендую .... код скрипта ужасен
>>> Можешь написать так что бы выдал то что нужно? У меня с
>>> -v не получилось, пробовал, ман читал.
>>> Решил проблему с помощью sed (в тот день, еще когда писал), но
>>> не кошерно как то, хочу понять как сделать все awk.
>> awk -v asd=1 '{print asd}'
> Я ж писал цифровые значения и без -v передались, текстовые не передались,
> и у меня внешняя переменная а не конретное значение.

у всех работает -- у тебя значит руки кривые.
а у меня что переменная не внешная?

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру