egrep -i '^\w+ LINUX ' myfile
awk '{IGNORECASE=1}{if ($2 == "LINUX") print}' myfile
sed -ne '/^[0-9]* [Ll][Ii][Nn][Uu][Xx] /p' myfile
изменить: изменено для нечувствительности к регистру
Ответ 3
Это случай, когда вы можете использовать красивый идиоматический awk:
awk '$2=="LINUX"' file
То есть:
Действие по умолчанию awk, когда в состоянии True выполняется печать текущей строки.
Так как $2 == "LINUX" истинно, когда второе поле LINUX, это будет печатать те строки, в которых это происходит.
Если вы хотите напечатать все те строки, соответствующие LINUX независимо от того, верхний или нижний регистр, используйте toupper() для использования все:
В GNU sed нечувствительные к регистру совпадения могут быть сделаны с помощью модификатора I:
sed -n '/^[^[:space:]][[:space:]]\+linux[[:space:]]\+/Ip'
Будет устойчиво соответствовать "linux", "Linux", "LINUX", "LiNuX" и другие как второе поле (после первого поля, которое может быть любым несимметричным символом) и окружено любой суммой (по крайней мере один ) любого пробела (прежде всего пространства и вкладки, хотя вы можете использовать [:blank:], чтобы ограничить его строго).