параметры ядра должны быть в форме
xxxxx=yyyy
без пробелов в xxxxx
или yyyy
. По моему опыту, кавычки / экранирование также не могут использоваться.
Таким образом,
modprobe.blacklist=radeon fglrx
будет проанализирован как modprobe.blacklist = radeon
и еще один параметр ядра 'fglrx', который будет проигнорирован, поскольку он не будет распознан как допустимый параметр.
Вы можете использовать -
в качестве «файла» для поиска, который будет использовать стандартный ввод в качестве «стога сена» для поиска совпадающих «иголок» в:
$ grep -oE '[aeiou]+' -
This is a test < input
i > output
i > output
a > output
e > output
whaaaat? < input
aaaa > output
Используйте Ctrl-D для отправки EOF
и завершения потока.
Однако я не верю, что вы можете сделать то же самое, чтобы использовать стандартный ввод для переключателя -f
, который считывает список шаблонов из файла. Однако, если у вас много шаблонов для текста в одном корпусе, вы можете:
grep -f needle-patterns haystack.txt
где needle-patterns
— файл открытого текста с одним регулярным выражением в строке.
Определите следующую функцию в вашей оболочке (вы можете просто ввести ее или поместить в свой ~/.bashrc
):
testregex() {
[ "$#" -eq 1 ] || return 1
while IFS= read -r line; do
printf '%s\n' "$1" | grep -Eoe "$line"
done
}
Затем вы можете протестировать регулярное выражение следующим образом:
$ testregex 'This is a line'
This <--input
This <--output
This?.* <--input
This is a line <--output
slkdjflksdj <--input with no output (no match)
s.* <--input
s is a line <--output
$ <--I pressed Ctrl-D to end the test