Это язык программирования, который скомпилирован в C (см. Википедию). Это первый раз, когда я видел его использование - cool:)
Если вы установите valac из synaptic или Software Center, вы должны пройти эту проверку.
Используйте поле { (пробел, фигурная скобка) в качестве разделителя полей, так как вы не заботитесь обо втором поле:
$ awk -F ' {' '{print $1}' foo
"xxxxx1"
"xx2"
"xx3 gsdd"
"sdsdf xxx"
"sdfsdf ccc dd"
"dsdsf sfsdf"
"sdfsdfsd"
"sdfsdff"
"sdfsdfdff sdfs"
"sdfsdsds sdfsdf d"
"sdfsdfs sdf sdfsdf"
"sdfsdfsdf sdf"
Используйте поле { (пробел, фигурная скобка) в качестве разделителя полей, так как вы не заботитесь обо втором поле:
$ awk -F ' {' '{print $1}' foo
"xxxxx1"
"xx2"
"xx3 gsdd"
"sdsdf xxx"
"sdfsdf ccc dd"
"dsdsf sfsdf"
"sdfsdfsd"
"sdfsdff"
"sdfsdfdff sdfs"
"sdfsdsds sdfsdf d"
"sdfsdfs sdf sdfsdf"
"sdfsdfsdf sdf"
Используйте поле { (пробел, фигурная скобка) в качестве разделителя полей, так как вы не заботитесь обо втором поле:
$ awk -F ' {' '{print $1}' foo
"xxxxx1"
"xx2"
"xx3 gsdd"
"sdsdf xxx"
"sdfsdf ccc dd"
"dsdsf sfsdf"
"sdfsdfsd"
"sdfsdff"
"sdfsdfdff sdfs"
"sdfsdsds sdfsdf d"
"sdfsdfs sdf sdfsdf"
"sdfsdfsdf sdf"
Если вы просто хотите, чтобы все между первым и последним символом двойной кавычки " каждой строки, самым простым решением, вероятно, было бы это, используя grep вместо awk:
grep -o '".*"' FILENAME
Переключатель -o позволяет grep выводить только совпадающие части, а не целую строку, содержащую совпадение. Шаблон (однокасканный, чтобы предотвратить интерпретацию оболочки) ".*" соответствует последовательности любого символа (.) с любой длиной (*), включая ноль, которая окружена двойными кавычками.
В качестве альтернативы решению awk мура
с использованием cut:
cut -f 1 -d { < file.txt
с использованием grep:
grep -o '".*"' file.txt
или
grep -o \".*\" file.txt
, используя sed:
sed -r 's/(".*").*/\1/' file.txt
или
sed -r 's/\{.*\}//' file.txt
или даже:
sed 's/{.*//'
Perl с группировкой (.*) тоже может это сделать:
$ perl -pe 's/"(.*)".*/"\1"/g' input.txt
"xxxxx1"
"xx2"
"xx3 gsdd"
"sdsdf xxx"
"sdfsdf ccc dd"
"dsdsf sfsdf"
"sdfsdfsd"
"sdfsdff"
"sdfsdfdff sdfs"
"sdfsdsds sdfsdf d"
"sdfsdfs sdf sdfsdf"
"sdfsdfsdf sdf"
Фокус в том, что мы сопоставляем целую строку и используем "(.*)" для обработки всего между двойными кавычками как одной группой. Мы заменяем эту целую строку группой, которую мы сопоставляем, обращаясь к ней через часть \1.
Если вы просто хотите, чтобы все между первым и последним символом двойной кавычки " каждой строки, самым простым решением, вероятно, было бы это, используя grep вместо awk:
grep -o '".*"' FILENAME
Переключатель -o позволяет grep выводить только совпадающие части, а не целую строку, содержащую совпадение. Шаблон (однокасканный, чтобы предотвратить интерпретацию оболочки) ".*" соответствует последовательности любого символа (.) с любой длиной (*), включая ноль, которая окружена двойными кавычками.
В качестве альтернативы решению awk мура
с использованием cut:
cut -f 1 -d { < file.txt
с использованием grep:
grep -o '".*"' file.txt
или
grep -o \".*\" file.txt
, используя sed:
sed -r 's/(".*").*/\1/' file.txt
или
sed -r 's/\{.*\}//' file.txt
или даже:
sed 's/{.*//'
Perl с группировкой (.*) тоже может это сделать:
$ perl -pe 's/"(.*)".*/"\1"/g' input.txt
"xxxxx1"
"xx2"
"xx3 gsdd"
"sdsdf xxx"
"sdfsdf ccc dd"
"dsdsf sfsdf"
"sdfsdfsd"
"sdfsdff"
"sdfsdfdff sdfs"
"sdfsdsds sdfsdf d"
"sdfsdfs sdf sdfsdf"
"sdfsdfsdf sdf"
Фокус в том, что мы сопоставляем целую строку и используем "(.*)" для обработки всего между двойными кавычками как одной группой. Мы заменяем эту целую строку группой, которую мы сопоставляем, обращаясь к ней через часть \1.
Если вы просто хотите, чтобы все между первым и последним символом двойной кавычки " каждой строки, самым простым решением, вероятно, было бы это, используя grep вместо awk:
grep -o '".*"' FILENAME
Переключатель -o позволяет grep выводить только совпадающие части, а не целую строку, содержащую совпадение. Шаблон (однокасканный, чтобы предотвратить интерпретацию оболочки) ".*" соответствует последовательности любого символа (.) с любой длиной (*), включая ноль, которая окружена двойными кавычками.
В качестве альтернативы решению awk мура
с использованием cut:
cut -f 1 -d { < file.txt
с использованием grep:
grep -o '".*"' file.txt
или
grep -o \".*\" file.txt
, используя sed:
sed -r 's/(".*").*/\1/' file.txt
или
sed -r 's/\{.*\}//' file.txt
или даже:
sed 's/{.*//'
Perl с группировкой (.*) тоже может это сделать:
$ perl -pe 's/"(.*)".*/"\1"/g' input.txt
"xxxxx1"
"xx2"
"xx3 gsdd"
"sdsdf xxx"
"sdfsdf ccc dd"
"dsdsf sfsdf"
"sdfsdfsd"
"sdfsdff"
"sdfsdfdff sdfs"
"sdfsdsds sdfsdf d"
"sdfsdfs sdf sdfsdf"
"sdfsdfsdf sdf"
Фокус в том, что мы сопоставляем целую строку и используем "(.*)" для обработки всего между двойными кавычками как одной группой. Мы заменяем эту целую строку группой, которую мы сопоставляем, обращаясь к ней через часть \1.