Как я могу извлечь слова между двумя строками в скрипте оболочки

Если вам повезло, у пакета есть цель удаления, поэтому в исходном каталоге, где вы его скомпилировали, запустите sudo make uninstall . В противном случае вам просто нужно вручную удалить файлы, которые он поместил в / usr / local.

-1
11.09.2018, 12:48
2 ответа

Строго следуя требованиям, предполагая, что текст уже был в переменной, вы бы сделали:

s="Summary: New Arrival Arrived At:11/8/2018, 01:38:00 P.M."
s="${s#*Summary:}"
s="${s%% Arrived At*}"
printf '%s\n' "$s"

... но если в ваших данных всегда есть пробел после Summary:, вы также можете удалить его:

s="${s#*Summary: }"
s="${s%%Arrived At*}"

... то же самое с начальным пробелом передArrived At:

s="${s#*Summary: }"
s="${s%% Arrived At*}"
4
28.01.2020, 05:07

То же самое можно сделать с помощью grep и Perl Regex.

$ echo "$mySTring" | grep -Po  "Summary: \K(.*)(?= Arrived )"
New Arrival

\K: grep will keep everything before \K in matching the pattern but while printing, it will be excluded.

?= is a positive lookahead Captured part must be followed by this part in parentheses to get captured but in the end output it will not printed or extracted.

1
28.01.2020, 05:07

Теги

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