Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Скрипты  (Прочитано 701 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн youra

  • Автор темы
  • Забанен
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Скрипты
« : 03 Апреля 2017, 18:48:36 »
#!/bin/bash

dirlist='ls -l'
cat $dirlist | awk '{print($3)}' | > file
exit

Подскажите в чем ошибка?

Оффлайн Длиннорогий

  • Активист
  • *
  • Сообщений: 257
    • Просмотр профиля
Re: Скрипты
« Ответ #1 : 03 Апреля 2017, 18:49:59 »
awk '{print $3}' > fileи экзит не нужен

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Скрипты
« Ответ #2 : 03 Апреля 2017, 18:54:09 »
dirlist='ls -l'
dirlist="$(ls -l)"
Пользователь добавил сообщение 03 Апреля 2017, 18:57:08:
а правильнее так:
find -maxdepth 1 -mindepth 1 -type d -printf '%u\n' > file
« Последнее редактирование: 03 Апреля 2017, 18:57:08 от renzrv »

Оффлайн Длиннорогий

  • Активист
  • *
  • Сообщений: 257
    • Просмотр профиля
Re: Скрипты
« Ответ #3 : 03 Апреля 2017, 18:57:36 »
renzrv, а еще проще так
16:43 main ~ $ vim test.sh
18:52 main ~ $ sh test.sh
18:52 main ~ $ cat test.sh
#!/bin/sh
ls -l | awk '{print $3}' > test.txt
18:52 main ~ $ cat test.txt

main
main
main
main
main
main
main
main
main
main

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Скрипты
« Ответ #4 : 03 Апреля 2017, 19:03:04 »
tmp=`mktemp`
ls -l > $tmp
cat $tmp | awk '{print $3}' > file
exit
Wars ~.o

Оффлайн youra

  • Автор темы
  • Забанен
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Скрипты
« Ответ #5 : 03 Апреля 2017, 19:17:57 »
а как tmp присвоить результат awk?

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Скрипты
« Ответ #6 : 03 Апреля 2017, 19:39:05 »
а правильнее так:
Код: (bash) [Выделить]
stat -c %U * > fileyoura, учитесь сразу делать правильно: не стоит в переменной сохранять многострочный вывод команды.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн youra

  • Автор темы
  • Забанен
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Скрипты
« Ответ #7 : 03 Апреля 2017, 21:18:01 »
#!/bin/bash
i=0
ls -l > $i
sort +1 -3 $i | awk '{print $3}' | uniq -u
результат пустая строка, почему?

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Скрипты
« Ответ #8 : 03 Апреля 2017, 21:22:02 »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Скрипты
« Ответ #9 : 03 Апреля 2017, 21:27:52 »
youra, может Вы объясните словами что Вы хотите получить, а то Ваш скрипт напоминает хаотический набор команд…
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн youra

  • Автор темы
  • Забанен
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Скрипты
« Ответ #10 : 03 Апреля 2017, 21:28:40 »
Понял, ключ убрал результат - вывод неповторяющихся строк, осталось убрать пустую строку, потом файлы переместит в директории с названиями владельцев файлов, и всё, первое упражнение из 8 домашнего задания готово, а завтра сдача)

 

Страница сгенерирована за 0.048 секунд. Запросов: 23.