Значение извлечения между двойными кавычками

Вы проверяли свои настройки BIOS, т.е. если гиперпоточность не включена в Вашем BIOS, то это не является операционным.

16
01.05.2017, 03:05
5 ответов

Ты можешь сделать это многими способами.

With awk:

$ awk -F'"' '{print $2}' file
GET /balancer-manager HTTP/1.1

With perl:

$ perl -F'"' -anle 'print $F[1]' file
GET /balancer-manager HTTP/1.1
2
27.01.2020, 19:48

Способ использования awk

awk -F'"' '$0=$2' file

Если по каким-то абсурдным причинам ваши HTTP методы на самом деле 0 и вы хотите вывести эти

awk -F'"' '{$0=$2}1' file
10
27.01.2020, 19:48

Вы можете просто использовать cut для этого:

$cut -d '"' -f2 < logfile
GET /balancer-manager HTTP/1.1

-d '" говорит cut, чтобы использовать двойную кавычку в качестве разделителя полей. -f2 сообщает, что нужно взять второе поле, которое находится между первой и второй кавычками - или первую кавычку, именно то, что вам нужно.

27
27.01.2020, 19:48

Поскольку растворы awk и perl уже предоставлены, я хотел попробовать sed:

sed 's/[^"]*"\([^"]*\)".*/\1/' file
4
27.01.2020, 19:48

обработка указанных входных чисел

echo   1234   | awk '{                i=strtonum($1) ;  printf( "%s %d\n",$1, i)}'  # no problem
echo '"1234"' | awk '{                i=strtonum($1) ;  printf( "%s %d\n",$1, i)}'  # does not work
echo '"1234"' | awk '{ gsub("\"",""); i = $1         ;  printf( "%s %d\n",$1, i)}'  # works
1
27.01.2020, 19:48

Теги

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