2013-03-15 2 views
6

Попытки Grep строку в двойных кавычках в данный момент я использую этотGrep строки в двойных кавычках

grep user file | grep -e "[\'\"]" 

Это позволит получить в секцию файла мне нужно и выделить двойные кавычки, но это не даст жало в двойных кавычках

ответ

9

Попробуйте сделать это:

$ cat aaaa 
foo"bar"base 
$ grep -oP '"\K[^"\047]+(?=["\047])' aaaa 
bar 

Я использую осмотреться расширенный ре gex техники.

Если вы хотите цитаты тоже:

$ grep -Eo '["\047].*["\047]' 
"bar" 

Примечание:

\047 

является восьмеричный ASCII представление одной цитаты

+0

Спасибо, что почти работает - выход получает строку, а также; вне двойной цитаты – Grimlockz

+0

Вы тоже хотите цитаты? –

+0

Нет, только жало, но с использованием выше, grep дает мне; а также ... попробуйте это, например user = "bobhope"; – Grimlockz

1

Try:

grep "Test" /tmp/junk | tr '"' ' ' 

Этот будет Ове цитирует с выхода Grep

Или вы можете попробовать следующее:

grep "Test" /tmp/junk | cut -d '"' -f 2 

Это будет использовать кавычки как разделитель. Просто укажите поле, которое вы хотите выбрать. Это позволит вам выбрать необходимую информацию.

+1

Как это ни парадоксально, оба они дают пустую строку при пересылке на 'grep -o '" [^ "] \ +"' ', но' grep -Eo '". *"' | tr -d '' ''работал. – LoungeKatt

+0

'cut' не является хорошим выбором здесь, потому что информация не разделяется на поля. Количество кавычек в строке может быть 1, может быть 5, может быть ничем. – SaltyNuts

6
$ cat aaaa 
foo"bar"base 

$ grep -o '"[^"]\+"' 
"bar" 
Смежные вопросы