sed 's/^\("[^"]*"\).*/\1/'
Это относится к строкам, содержащим простое поле в двойных кавычках, опускающее любой дополнительный материал.Он проходит через любые строки, не соответствующие этому неизменному.
Если вы хотите удалить несоответствующие строки, то:
sed -n '/^\("[^"]*"\).*/s//\1/p'
По умолчанию не печатается и печатается, когда находитmatch.
Если вам приходится иметь дело с такими полями данных, как:
"He said, ""It's horrid""" and he meant it!
, вам придется работать значительно усерднее.Если ваш sed
поддерживает расширенные регулярные выражения или PCRE (регулярные выражения, совместимые с Perl), вы можете сделать это.Если нет, используйте awk
.