Только распечатайте строки, где второе поле соответствует некоторым критериям

Пожалуйста, проверьте этот JSON и посмотрите, работает ли он:

 {
 "Ukraine": {
  "Credits": 500,
  "Name": "Clever goat",
  "Price": {
   "Amount": 100,
   "Currency": "UAH"
 }
},
 "USA": {
  "Credits": 500,
  "Name": "Clever goat",
  "Price": {
    "Amount": 10,
    "Currency": "USD"
  }
 }
}
37
задан fedorqui 3 May 2016 в 11:19
поделиться

4 ответа

В awk :

awk '$2 == "LINUX" { print $0 }' test.txt

См. awk в примере для хорошей вводной части awk .

В sed :

sed -n -e '/^[0-9][0-9]* LINUX/p' test.txt

См. sed в примере для хорошей вводной части sed .

72
ответ дан 27 November 2019 в 04:22
поделиться

Мой ответ является очень поздним, но никто не упомянул:

awk '$2~/LINUX/' file
0
ответ дан 27 November 2019 в 04:22
поделиться

Попробуйте это:

egrep -i '^\w+ LINUX ' myfile

awk '{IGNORECASE=1}{if ($2 == "LINUX") print}' myfile

sed -ne '/^[0-9]* [Ll][Ii][Nn][Uu][Xx] /p' myfile

редактировать: изменено для нечувствительности к регистру

4
ответ дан 27 November 2019 в 04:22
поделиться

В GNU sed совпадения без учета регистра могут быть выполнены с использованием модификатора I :

sed -n '/^[^[:space:]][[:space:]]\+linux[[:space:]]\+/Ip'

Будет надежно соответствовать «linux», «Linux» , «LINUX», «LiNuX» и другие в качестве второго поля (после первого поля, которое может быть любым непробельным символом) и окружены любым количеством (по крайней мере одним) любых пробелов (в первую очередь, пробелами). и табуляция, хотя вы можете использовать [: blank:] , чтобы ограничить их только этими).

3
ответ дан 27 November 2019 в 04:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: