Как выйти из Целой Переменной?

[112312] Думаю, для этого нужно нечто большее, чем простой конвейер. Итак, я предлагаю что-то вроде этого:

Это использует преимущества расширенных ([112720]-E[112721]) GNU [112722]grep[112723] флагов, [112724]-w[112725] и [112726]-o[112727]. Без этих двух флагов вам пришлось бы поставить что-то вроде маленькой программы на Perl, которая может вырывать "слова" из строк текста, выделять слово, совпадающее с ключевыми словами, и использовать его в качестве имени файла.[112315].

2
25.08.2014, 01:36
2 ответа
[

] Если я вас правильно понял, у вас есть регекс в переменной, и вы хотели бы [] grep[] использовать его, не придавая особого значения регекс-метахарным символам. Если это так, то опция []-F[] (фиксированные строки) для []grep[] - это то, что Вы хотите:[

] [
grep -F "$var" your_file
] [

]Ваша система может также иметь специальную команду ([]fgrep[]), которая эквивалентна вышеописанной:[

] [
fgrep "$var" your_file
]
1
27.01.2020, 22:22
[

]Одиночные кавычки должны выполнить то, что вы хотите.[

] [
# " is the special charater
var='"hello "word";'
grep "$var" file
] [

]Из бэш-страницы:[

] [
Enclosing characters in single quotes preserves the literal value of each character within the quotes.  A  single  quote  may  not
   occur between single quotes, even when preceded by a backslash.

Enclosing characters in double quotes preserves the literal value of all characters within the quotes, with the exception of $, ‘,
   \, and, when history expansion is enabled, !.  The characters $ and ‘ retain their special  meaning  within  double  quotes.   The
   backslash  retains  its special meaning only when followed by one of the following characters: $, ‘, ", \, or <newline>.  A double
   quote may be quoted within double quotes by preceding it with a backslash.  If enabled, history expansion will be performed unless
   an !  appearing in double quotes is escaped using a backslash.  The backslash preceding the !  is not removed.
]
0
27.01.2020, 22:22

Теги

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