bash/sed를 사용하여 일치하는 문자열을 검색하려고합니다. 일치하는 문자열이 발견되면 해당 변수의 끝에 해당 변수를 추가합니다.특정 줄에 일치하는 문자열 추가 (sed/bash)
두리스트 : 나는 그것을 실행할 때
[linuxbox tmp]$ cat lista
a 23
c 4
e 55
b 2
f 44
d 74
[linuxbox tmp]$ cat listb
a 3
e 34
c 84
b 1
f 500
d 666666
#!/bin/bash
rm -rf listc
cat listb |while read rec
do
var1="$(echo $rec | awk '{ print $1 }')"
var2="$(echo $rec | awk '{ print $2 }')"
if egrep "^$var1" lista; then
sed "/^$var1/ s/$/ $var2/1" lista >> listc
fi
done
내가 얻을 :
[linuxbox tmp]$ ./blah.sh
a 23
e 55
c 4
b 2
f 44
d 74
[linuxbox tmp]$ cat listc
a 23 3
c 4
e 55
b 2
f 44
d 74
a 23
c 4
e 55 34
b 2
f 44
d 74
a 23
c 4 84
e 55
b 2
f 44
d 74
a 23
c 4
e 55
b 2 1
f 44
d 74
a 23
c 4
e 55
b 2
f 44 500
d 74
a 23
c 4
e 55
b 2
f 44
d 74 666666
난에 도착하기 위해 노력하고있어 출력은 다음과 같습니다
a 23 3
e 55 34
c 4 84
b 2 1
f 44 500
d 74 666666
내가 뭐하는 거지 여기서 뭐라구? 이 작업을 수행하는 더 좋은 방법이 있습니까?
미리 감사드립니다.
'-n'과 함께'sed'를 사용하고'p'를 대체 명령에 추가하십시오. – Thor