Если вы хотите, чтобы строки обрабатывались отдельно (в вашем первом примере ), но чтобы несколько совпадений в строке выводились в одну строку (, как во втором примере ), я не думаю, что это возможно только с grep
.
Однако, используя тот же This.*?day
не -жадный поиск в perl, вы можете
$ perl -lne 'print join " ", /This.*?day/g' theabovetext1
This will be this one day
This will be this next day
This will won' not this day
This not what shoes day
, а для однострочного ввода -
$ perl -lne 'print join " ", /This.*?day/g' theabovetext2
This will be this one day This will be this next day This will won' not this day This not what shoes day