sed: просто пытаюсь удалить подстроку - PullRequest
12 голосов
/ 02 декабря 2011

У меня есть файл с таким содержанием:

foo: bar1
foo: bar2
foo: bar3
foo: bar4
foo: bar5

Я хочу удалить цепочки "foo:", чтобы файл остался:

bar1
bar2
bar3
...

Я пытаюсь это с:

$ sed 's/foo: /' file.txt

но там написано:

sed: -e выражение # 1, символ 15: неопределенная команда `s '

Любая помощь?

1018 * Javi *

Ответы [ 5 ]

23 голосов
/ 02 декабря 2011

Вам необходимо:

$ sed -r 's/^foo: //' file.txt
7 голосов
/ 02 декабря 2011

Ваш file

[jaypal:~/Temp] cat file
foo: bar1
foo: bar2
foo: bar3
foo: bar4
foo: bar5

Использование awk:

[jaypal:~/Temp] awk -F";" '{print $NF}' file
bar1
bar2
bar3
bar4
bar5

Использование sed

[jaypal:~/Temp] sed 's/.*;//' file
bar1
bar2
bar3
bar4
bar5

Использование cut

[jaypal:~/Temp] cut -d";" -f2 file
bar1
bar2
bar3
bar4
bar5
2 голосов
/ 02 декабря 2011

Для этой простой задачи вы можете использовать cut:

 cut -b 11- INPUTFILE

HTH

1 голос
/ 02 декабря 2011
awk -F';' '{print $2}' file

или

grep -Po '(?<=&nbsp;).*$' file
0 голосов
/ 08 января 2018

Практический пример использования sed для удаления подстроки, а затем копирования в буфер вставки (linux)
Сканирование файла конфигурации AutoHock на Linux (к сожалению, нет AutoHock для Linux). '::' используется в качестве разделителя в AHK

grep -Eie "xxx::" AutoHotkey.ahk | sed 's/^.*:://' | xclip
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...