Автор Тема: удалить во всех строках @hostname  (Прочитано 7528 раз)

Оффлайн Zayac

  • Новичок
  • *
  • Сообщений: 0
Нужно удалить со всех строк @hostname чтоб остались только логины подскажите команду sed.
Пример:
Спойлер
den10152@yahoo.com.tw
5thavenue01@yahoo.com.tw
shubhrak@yahoo.com
too595@icq.com
haijunding2002@yahoo.com
botonxp@sohu.com
wingchi1989@hotmail.com
nice2hear@mail.goo.ne.jp
being4good@yahoo.co.jp
jonatanflodin@hotmail.com
miffy3960@yahoo.com.tw
abedeen69@yahoo.com
ffcarvalho@terra.com.br
samsiishere@hotmail.com
mnewtonzac@hotmail.com
rayfme@yahoo.com.hk
rayhello@mail.hongkong.com
sibarra2000@yahoo.com
« Последнее редактирование: 11.10.2016 12:21:02 от sb »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 302
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: удалить во всех строках @hostname
« Ответ #1 : 11.10.2016 11:59:50 »
По сообщению - если это реальные e-mail, лучше их поместить в спойлер - нечего давать пищу спамботам.
« Последнее редактирование: 11.10.2016 13:01:24 от ruslandh »

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: удалить во всех строках @hostname
« Ответ #2 : 11.10.2016 12:12:22 »
cat имя_файла | cut -d "@" -f1

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 159
Re: удалить во всех строках @hostname
« Ответ #3 : 11.10.2016 15:07:10 »
cat имя_файла | cut -d "@" -f1
Просили sed. :-)

sed -i "/@.*$//" имя_файла

Оффлайн Zayac

  • Новичок
  • *
  • Сообщений: 0
Re: удалить во всех строках @hostname
« Ответ #4 : 11.10.2016 20:05:13 »
sed -i "/@.*$//" имя_файла
$ sed -i "/@.*$//" testmail.txt
sed: -e выражение #1, символ 7: неизвестная команда: `/'

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
    • Email
Re: удалить во всех строках @hostname
« Ответ #5 : 11.10.2016 20:45:40 »
Zayac
sed -i "s/@.*$//" testmail.txt
Сноси Винду, переходи на Линукс ! :)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: удалить во всех строках @hostname
« Ответ #6 : 11.10.2016 22:10:22 »
Спойлер
$ cat 77777.txt
den10152@yahoo.com.tw
5thavenue01@yahoo.com.tw
shubhrak@yahoo.com
too595@icq.com
haijunding2002@yahoo.com
botonxp@sohu.com
wingchi1989@hotmail.com
nice2hear@mail.goo.ne.jp
being4good@yahoo.co.jp
jonatanflodin@hotmail.com
miffy3960@yahoo.com.tw
abedeen69@yahoo.com
ffcarvalho@terra.com.br
samsiishere@hotmail.com
mnewtonzac@hotmail.com
rayfme@yahoo.com.hk
rayhello@mail.hongkong.com
sibarra2000@yahoo.com
$ sed -i 's/@.*//' 77777.txt

Спойлер
$ cat 77777.txt
den10152
5thavenue01
shubhrak
too595
haijunding2002
botonxp
wingchi1989
nice2hear
being4good
jonatanflodin
miffy3960
abedeen69
ffcarvalho
samsiishere
mnewtonzac
rayfme
rayhello
sibarra2000

Антон Тарасов  Одно-строчные скрипты SED (перевод)
Изучаем команды Linux: sed
Приложение B. Маленький учебник по Sed и Awk (ABS Guide)

Advanced Bash-Scripting Guide
Искусство программирования на языке сценариев командной оболочки

« Последнее редактирование: 12.10.2016 07:34:29 от Speccyfighter »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 159
Re: удалить во всех строках @hostname
« Ответ #7 : 11.10.2016 23:07:36 »
sed -i "/@.*$//" имя_файла
$ sed -i "/@.*$//" testmail.txt
sed: -e выражение #1, символ 7: неизвестная команда: `/'
Да, "s" перед первым слэшем пропустил я. Случайно. :-)