У меня есть файл, в котором мне нужно удалить все после первого ;
в каждой строке.
Итак, такой файл:
sdfsdsdf;
fsdfsddf;sdfsd;
Приведет к этому:
sdfsdsdf
fsdfsddf
Я изучил grep
и sed
. Буду признателен за ответ, включающий любую из этих команд.
command-line
scripting
grep
sed
уборщик мусора
источник
источник
sed 's/;.*//'
Другой вариант - использовать
cut
командуисточник
Я обычно использую
awk
для таких вещей:cat a.file | awk -F=";" '{ print $1 }'
Это займет каждую строку файла и напечатает первую группу перед разделителем
-F
источник
cat
.Вот способ сделать это с помощью GNU
grep
:источник
grep -Eo '^[^;]+;' filename
почти получает, просто печатает один символ слишком много.grep -Eo '^[^;]+' filename
почти тоже получает, но он также будет печатать полные (непустые) строки, которые не имеют никаких;
.