The OpenNET Project / Index page

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

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

"Использование перенаправлений и конвейера (программного канала)"  –1 +/
Сообщение от iop (ok) on 30-Окт-17, 15:24 
Помогите пожалуйста с заданием,хотя бы начать.
В созданном текстовом файле оставить в каждой строке не более 2-х слов. Остаток перенести в следующую строку. Если вторая строка в паре оказывается пустой - печатать в ней символ '='.
Нужно ли здесь использовать cut и как это сделать?
Ответить | Правка | Cообщить модератору

Оглавление

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

1. "Использование перенаправлений и конвейера (программного канала)"  +/
Сообщение от ACCA (ok) on 31-Окт-17, 20:02 
> Нужно ли здесь использовать cut и как это сделать?

Не нужно, чисто башем:

while read -a R ; do
    while [ ${#R[@]} -ge 1 ] ; do
        if [ ${#R[@]} -gt 2 ] ; then
            echo ${R[0]} ${R[1]}
            R=( ${R[@]:2} )
        else
            echo ${R[@]}
            echo =
            R=()
        fi
    done
done

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

2. "Использование перенаправлений и конвейера (программного канала)"  –1 +/
Сообщение от iop (ok) on 05-Ноя-17, 14:10 
Спасибо за помощь) Но можно ли написать что-нибудь с использованием cut, sed,paste, tail, sort. На подобие такого примерчика:
pr -T 123.txt |  Выводим файл без заголовка и лишних строк.
head -n3 |       Выводим первые 3 строки.
tail -1 > temp1  Выводим последнюю из первых трех строк и сохраняем результат в файл temp1.
pr -T 123.txt |  Выводим файл без заголовка и лишних строк.
sed 3d >temp2    Удаляем 3 строку и сохраняем результат в файл temp2.
paste -s -d"\n" temp2 temp1 > new123.txt  Склеиваем 2 файла соблюдая символы из списка.
rm -f temp*                               Удаляем временные файлы.

Не могу разобраться как это использовать на свой пример,помогите,буду очень благодарна))

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

3. "Использование перенаправлений и конвейера (программного канала)"  +/
Сообщение от ACCA (ok) on 06-Ноя-17, 06:30 
Напиши по порядку. Что на входе, что ты хочешь получить на выходе.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Использование перенаправлений и конвейера (программного канала)"  +/
Сообщение от iop (ok) on 06-Ноя-17, 14:58 
> Напиши по порядку. Что на входе, что ты хочешь получить на выходе.

Ну если я правильно поняла,то у нас есть файл с любым текстом,например:

Вы помните,
Вы всё, конечно, помните,
Как я стоял,
Приблизившись к стене,
Взволнованно ходили вы по комнате
И что-то резкое
В лицо бросали мне.
Вы говорили:
Нам пора расстаться,
Что вас измучила
Моя шальная жизнь,
Что вам пора за дело приниматься,
А мой удел -
Катиться дальше, вниз.

После преобразований(В созданном текстовом файле оставить в каждой строке не более 2-х слов. Остаток перенести в следующую строку. Если вторая строка в паре оказывается пустой - печатать в ней символ '='.)должно получиться:

Вы помните,
=
Вы всё,
конечно, помните,
Как я
стоял,
Приблизившись к
стене,
Взволнованно ходили
вы по комнате
И что-то
резкое
В лицо
бросали мне.
Вы говорили:
Нам пора
расстаться,
Что вас
измучила
Моя шальная
жизнь,
Что вам
пора за дело приниматься,
А мой
удел -
Катиться дальше,
вниз.

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

5. "Использование перенаправлений и конвейера (программного канала)"  +/
Сообщение от ACCA (ok) on 07-Ноя-17, 06:34 
Какой-то подозрительный пример.

Строки "вы по комнате" и "пора за дело приниматься," нарушают условие "оставить в каждой строке не более 2-х слов"

Если же "остаток" - это не "каждая строка", то решение сильно проще:

cat text.txt | while read w1 w2 rest ; do
  echo $w1 $w2
  if [ -z "$rest" ] ; then
    echo =
  else
    echo $rest
  fi
do

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


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

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




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

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