я не думаю, что это возможно однако, возможно создать маленький сценарий для этого
#! /bin/bash
files=(file1 file2 file3)
for i in "${files[@]}"; do grep -E "MY PATTERN" < "$i" > matches-"$i"; done
Согласно спецификации POSIX для Командного языка Shell, если новая строка следует за символом обратной косой черты (\
), оболочка должна интерпретировать это как продолжение строки, т.е. оболочка интерпретирует следующую строку, как будто это была бы часть первого. Это - исключение к обычному значению \
, который является Escape следующий символ, сохраняя его литеральное значение. >
указывает, что вход будут рассматривать как таковой продолжение строки.
Это также происходит с несбалансированными одинарными или двойными кавычками ('
, "
), которые сохраняют литеральное значение каждого символа в кавычках (за некоторыми исключениями относительно "
). В этом случае новая строка между кавычками интерпретируется как часть входа и не инициирует парсинг командной строки.
Это $PS2
или подсказка второго уровня, которая указывает на продолжение предыдущей строки (строк). Это также показывает, разбалансировали ли Вы одинарные или двойные кавычки.