LINUX.ORG.RU

помогите разобраться со скриптом

 


0

2

Создайте сценарий, решающий следующую задачу. Преобразуйте текст входного потока следующим образом. Из всех слов исключите точки и запятые. Т.е. последовательность a..r.t.f,ul. должна стать словом artful. Пропустите слова, состоящие из одной буквы. Если слово содержит одну цифру и одну букву, оно также должно пропускаться.

#!/bin/bash
echo $* | sed -e 's/[\.,]//g' -e 's/\(^\| \)[0-Z]\( \|$\)/\1/g' \
-e 's/\(^\| \)[a-Z][0-9]\( \|$\)/\1/g' \
-e 's/\(^\| \)[0-9][a-Z]\( \|$\)/\1/g'


Последнее исправление: beastie (всего исправлений: 3)
Ответ на: комментарий от UVV

Нет, больше похоже на реальную попытку решить задачу.

thesis ★★★★★
()
Ответ на: комментарий от alexkhramov

Наверное хочет, чтобы ты пошел в армию.

thesis ★★★★★
()

И как часто ты будешь пересоздаваеть эту тему?

Я тебе уже дал решение:

#!/bin/sed -f
s/[\.,]//g
s/\<[[:alnum:]]\>//g
s/\<[[:alpha:]][[:digit:]]\>//g
s/\<[[:digit:]][[:alpha:]]\>//g
s/[[:space:]]\{2,\}/ /g

Hints:

  • значки \< и \> там не просто так
  • shebang — это не просто комментарий
  • не злоупотребляй захватами, часто они совсем не нужны
  • что будет, если кроме пробелов будут ещё табы?
beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 3)
echo "A...r.,t 0r a1 b is,. my love" | sed -e "s/,\|\.\|[0-9]//g" | sed -e "s/\b[a-z]\b//g" | sed -e "s/ \{2,\}/ /g"
iljuase ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.