Завершение вкладок Bash не работает после = символ

Единственнымgrep-решением является

grep gis aaa | grep -o '^[^"]*"[^"]*"' | grep -o '"[^"]*"$'

Первый grepтакой же, как у вас в вопросе. Очевидно, он выбирает строки, содержащиеgis(в любом месте строки ). Второй grep,

grep -o '^[^"]*"[^"]*"'

соответствует всему, начиная с (, включая ). первая строка в кавычках в строке (, т. е. столбцы с 1 по 4 ), и из-за опции-oвыводит только этих слов. Третий grep,

grep -o '"[^"]*"$'

соответствует последнему слову строки в кавычках в строке (, что на данный момент является столбцом 4 исходной строки )и выводит только эту строку.


П.С. Если в вашем файле есть одна вкладка между каждой парой столбцов, и значения не содержат табуляции, простой способ получить четвертый столбец —

awk -F'\t' '/gis/ { print $4 }' aaa
1
02.03.2020, 08:19
1 ответ

shopt -u progcompотключает программируемое завершение , т.е. скрипты, которые могут предоставлять, например. за -завершение программы. Они могут предоставлять такие функции, как завершение только файлов, которые соответствуют *.tarили тому подобное, когда командная строка начинается с tarи т. д. Эти сценарии обычно поставляются с вашим дистрибутивом или нет, в случае Mac.

Можно отключить progcomp, если ошибки и неправильные функции, вызванные этими сценариями, кажутся более раздражающими, чем фактические функции полезны (и для меня это примерно в 100 % случаев ).

1
28.04.2021, 23:21

Теги

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