The OpenNET Project / Index page

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

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

"помогите с bash скриптом"
Сообщение от gexa emailИскать по авторуВ закладки on 19-Мрт-03, 10:55  (MSK)

Подскажите как написать скрипт на bash.
Есть файл /etc/passwd к примеру:

xfs:x:43:43:X Font Server:/etc/X11/fs:/bin/false
ihor:x:42:42::/dev/null:/sbin/nologin
rpcuser:x:30:30:RPC Service User:
...

нужно по запуску скрипта получить stdout вида:
xfs
ihor
rpcuser
...
(извлеч из строчек первое поле - отделенное ":x")

как в bash сделать такую сортировку ?
Благодарю за помощь.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

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

1. "помогите с bash скриптом"
Сообщение от SergeiZz Искать по авторуВ закладки on 19-Мрт-03, 13:50  (MSK)
>(извлеч из строчек первое поле - отделенное ":x")
Первое поле, или первое, после которого x?
Если первое, то:
bash$ cat /etc/passwd | awk -F: '{print $1}'

>как в bash сделать такую сортировку ?
Обработку? Если сортировку, то sort, если уникальность, то uniq.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "помогите с bash скриптом"
Сообщение от Nikolaev D. emailИскать по авторуВ закладки on 19-Мрт-03, 14:22  (MSK)
>>(извлеч из строчек первое поле - отделенное ":x")
>Первое поле, или первое, после которого x?
>Если первое, то:
>bash$ cat /etc/passwd | awk -F: '{print $1}'
>
>>как в bash сделать такую сортировку ?
>Обработку? Если сортировку, то sort, если уникальность, то uniq.

Все неправильно :)

cat /etc/passwd |sed "s/:/ /"|awk '{print $1}'
А какая уникальность в passwd для логинов ??

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "помогите с bash скриптом"
Сообщение от SergeiZz Искать по авторуВ закладки on 19-Мрт-03, 19:26  (MSK)
>>bash$ cat /etc/passwd | awk -F: '{print $1}'
>Все неправильно :)
Проглядели опцию -F: (тогда двоеточие будет разделителем).
Я, естественно, тестировал (в Red Hat Linux).

>cat /etc/passwd |sed "s/:/ /"|awk '{print $1}'
Вы заменили двоеточия пробелами и поэтому не нужно использовать -F

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "???????? ? bash ????????"
Сообщение от sas emailИскать по авторуВ закладки on 20-Мрт-03, 00:25  (MSK)
>
>?????????? ??? ???????? ?????? ?? bash.
>???? ???? /etc/passwd ? ???????:
>
>xfs:x:43:43:X Font Server:/etc/X11/fs:/bin/false
>ihor:x:42:42::/dev/null:/sbin/nologin
>rpcuser:x:30:30:RPC Service User:
>...
>
>????? ?? ??????? ??????? ???????? stdout ????:
>xfs
>ihor
>rpcuser
>...
>(?????? ?? ??????? ?????? ???? - ?????????? ":x")
>
>??? ? bash ??????? ????? ?????????? ?
>????????? ?? ??????.

"?????" ????????? ???????:

VVV="111:222:333:444:555:666"
pattern=':*'
echo ${VVV%%${pattern}}

??? ??? ?????:

pattern=':*'
IFS=$'\n'
for l in `cat /etc/passwd`; do echo "${l%%$pattern}"; done

????? ???? ??? ????????????? ?????? cat  ? ?????? ?????????? awk

awk -F: '{ print $1 }' /etc/passwd

??????? awk ??????? ????? ?????? ? ?????? ? ?????? ??????? ??????????? ?????????? ???? ???????? ? ????????? ??????? ???????

:))

???????
--- sas

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "без вопросов :)"
Сообщение от sas emailИскать по авторуВ закладки on 20-Мрт-03, 00:28  (MSK)
>
>Подскажите как написать скрипт на bash.
>Есть файл /etc/passwd к примеру:
>
>xfs:x:43:43:X Font Server:/etc/X11/fs:/bin/false
>ihor:x:42:42::/dev/null:/sbin/nologin
>rpcuser:x:30:30:RPC Service User:
>...
>
>нужно по запуску скрипта получить stdout вида:
>xfs
>ihor
>rpcuser
>...
>(извлеч из строчек первое поле - отделенное ":x")
>
>как в bash сделать такую сортировку ?
>Благодарю за помощь.

"ЧистА" башевский вариант:

VVV="111:222:333:444:555:666"
pattern=':*'
echo ${VVV%%${pattern}}

или для файла:

pattern=':*'
IFS=$'\n'
for l in `cat /etc/passwd`; do echo "${l%%$pattern}"; done

Кроме того нет необходимости делать cat  в случае применения awk

awk -F: '{ print $1 }' /etc/passwd

Конечно awk решение более мощное и гибкое С другой стороны подстановка параметров тоже работает в некоторых простых случаях

:))

Успехов
--- sas

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "помогите с bash скриптом"
Сообщение от dvic Искать по авторуВ закладки on 23-Мрт-03, 04:39  (MSK)
cut -f1 -d: /etc/passwd
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




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

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