LINUX.ORG.RU

Обрезать строку с определенного вхождения символа

 


1

1

Добрый день. Помогите, пожалуйста, в таком вопросе. Есть текстовый файл, необходимо обрезать каждую строку с 3-го (к примеру) вхождения определенного символа (в примере «;») и до конца. По первому вхождению работает

sed -i 's/;.*//' n.txt

Но как ни пытаюсь указать, что надо не с первого вхождения, не получается… Заранее благодарен.



Последнее исправление: Dmyttro (всего исправлений: 1)

Может быть,

s/(.*);(.*);(.*);.*/\1;\2;\3/
cat example.txt
bla;bla;bla;nenuzhno
bla;bla;bla;nenuzhno
bla;bla;bla;nenuzhno
cat example.txt | sed -E 's/(.*);(.*);(.*);.*/\1;\2;\3/'
bla;bla;bla
bla;bla;bla
bla;bla;bla

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

Огромное спасибо! То, что доктор…

Dmyttro
() автор топика

Вообще, sed здесь совершенно избыточен, можно сделать так:

echo "bla;bla;bla;nenuzhno;nenuzhno" | cut -d';' -f-3
anarquista ★★★★★
()
Ответ на: комментарий от anarquista

Да, и скорость впечатляет. Спасибо!

Dmyttro
() автор топика

The main executioner I disapprove of is Freddy. Teleportation to gens, counterfeit beds, blood catches, dream state essentially trivial https://blackfridayvpn.me/

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.