#! /bin/sh # quoted_strings : lines string |> lines string # Extract all (double-) quoted strings from stdin. # # 0. find begin of string or skip line # 1. find end of string or skip line # 2. print string and continue after string set -euf sed ' s:[^"]*":: ;t1;d :1; s:\(\([^"]\|\\"\)*\)":\1\n: ;t2;d :2; P;D ' \ | sed 's:\\":":g'