2016-04-30 12 views
-6

iam mit zwei Beispielskript gemeinsam gefunden wird:mit einem anderen String, wenn ein Muster zwischen zwei Skripte

Sample1:

Header1234578 
12345abcdN qwerty 
67890efghN qwerty 
Trailer0000002 

Sample2:

12345 
65432 
56789 

So , was ich brauche, ist, wenn eine Zeichenkette von sample2 mit einer Zeichenkette in sample1 übereinstimmt, Feld an Position 10 (dh N) sollte mit Y nur in der Linie ersetzt werden, in der Übereinstimmung gefunden wird.

Versuchte Code:

Katze Sample2 | während lesen LINE
do
$ FLAG_FOUND = grep $ LINE Beispiel1
if [[$? -eq 0]]
{
sed 's/^ ./ \ Y/({9}.)' Sample1 >> Sample3
}

+0

Ich muss ein Shell-Skript in Unix für diese –

+0

ok schreiben, aber Sie müssen Ihren versuchten Code in Frage zeigen – anubhava

Antwort

0

können Sie diesen awk Befehl verwenden:

awk 'FNR==NR{a[$1]; next} FNR>1 { 
    for (i in a) if ($1 ~ i) { 
    $0 = substr($0, 1, 9) "Y" substr($0, 11) 
    break 
    } 
} 1' sample2 sample1 

Header1234578 
12345abcdY qwerty 
67890efghN qwerty 
Trailer0000002 
Verwandte Themen