Pesquise, combine e substitua a primeira coluna por um valor usando sed

0

Gostaria de receber alguns conselhos usando sed sobre como substituir value1 na primeira coluna que corresponde a value2:

value1 = 9999
value2 = 02a-ResetFlag.sh

Data File
----------------------------------
0500 * * 1 ( 02-StartFix.sh)

1850 * * 1 ( 02a-ResetFlag.sh)

2000 * * 1 ( 03-StopFix.sh)

2005 * * 1 ( 04-DssEOD.sh)

Expected output:
-----------------------------------
0500 * * 1 ( 02-StartFix.sh)

9999 * * 1 ( 02a-ResetFlag.sh)

2000 * * 1 ( 03-StopFix.sh)

2005 * * 1 ( 04-DssEOD.sh)

obrigado antecipadamente.

    
por shenk 03.06.2014 / 12:31

2 respostas

1

Se o conteúdo do arquivo data for

0500 * * 1 ( 02-StartFix.sh)
1850 * * 1 ( 02a-ResetFlag.sh)
2000 * * 1 ( 03-StopFix.sh)
2005 * * 1 ( 04-DssEOD.sh)

então

sed -i -r '/02a-ResetFlag.sh/{s/^([0-9]+)(.*)$/9999/g}' data

irá modificar o arquivo data para

0500 * * 1 ( 02-StartFix.sh)
9999 * * 1 ( 02a-ResetFlag.sh)
2000 * * 1 ( 03-StopFix.sh)
2005 * * 1 ( 04-DssEOD.sh)

testado em GNU sed version 4.2.1

    
por 03.06.2014 / 13:30
0

Supondo que o padrão de pesquisa esteja no final da linha ( $ é o marcador de fim de linha) e a string de substituição está no início do arquivo -:

sed '/02a-ResetFlag.sh)$/ s/^1850/9999/'  data-file
    
por 03.06.2014 / 13:42

Tags