substitui o padrão dentro de uma linha do padrão no início

1

Tentando substituir um padrão dentro de linhas de texto por um padrão encontrado no início da mesma linha.

Tendo algum texto:

number4456 reports a high level of error
number3458 taking a proper error warning
number9273 is not an error prone software

Saída desejada:

reports a high level of error_number4456
taking a proper error_number3458 warning
is not an error_number9273 prone software
    
por jomaweb 19.08.2016 / 14:56

2 respostas

1

com sed :

LC_ALL=C sed -e 's/^\([^ ]*\) \(.* error\)/_/' <file

assumindo que há apenas um error em uma linha.

    
por 19.08.2016 / 15:05
0
awk '{a = "";for(i=2;i<=NF;i++){if($i ~ /error/)a = a$i"_"$1" ";else a = a$i" "}print a}' yourfile
    
por 19.08.2016 / 15:07