Arquivo de teste:
cat Test.txt
#EXTM3U
#EXTINF:100
a.flac
#EXTINF:20
b.flac
resultado esperado
cat Test.txt
#EXTM3U
#EXTINF:100
#a.flac
#EXTINF:20
#b.flac
Experimento 1
sed -e '/^#EXTINF/a #' Test.txt
#EXTM3U
#EXTINF:100
#
a.flac
#EXTINF:20
#
b.flac
Sugestões?
Meu experimento adiciona uma nova linha após anexar #
, não quero que essa nova linha seja adicionada.
Onde
n
imprime o espaço do padrão (neste caso, a linha correspondente^#EXTINF
) e lê a próxima linha de entrada no espaço do padrãos/^/#/
substitui no início#
da linha recém-lidaCom
awk
:Imprima qualquer linha e teste o padrão. Se o padrão corresponder, a
getline
chamada buscará a próxima linha para processamento. Também&& getline
é usado para testar se a próxima linha existe e não chegamos ao final do arquivo, para evitar imprimir novamente a última linha se corresponder.O mesmo sem
getline
:Usando um sinalizador (
p
), defina-o quando o padrão for encontrado. Flag pode ser usado apenas para a próxima linha em que foi definida, por causa dep=0
dentro dep{...}
.