관련 ID에 세션 번호를 추가합니다.

관련 ID에 세션 번호를 추가합니다.

코드의 출력으로 긴 레코드를 수집했는데,

Part1=STS768976N-4BT345432-X00001-87675789AAAS Session=9
Part2=STS876578N-2BT234522-X00002-23456789UJHG Session=10
Part3=ST9876887N-1BT876577-X00003-65778978KJUH Session=11
Session=10 70000
Session=11 80000
Session=9 90000

데이터를 이렇게 정리하고 싶어요

Part1=STS768976N-4BT345432-X00001-87675789AAAS 90000
Part2=STS876578N-2BT234522-X00002-23456789UJHG 70000
Part3=ST9876887N-1BT876577-X00003-65778978KJUH 80000

내가 이걸 어떻게 할 수 있지?

답변1

awk할수있다:

awk '/Part/{i[$2]=$1;next}$1 in i{print i[$1],$2}' file | sort -t= -k1

Part1=STS768976N-4BT345432-X00001-87675789AAAS 90000
Part2=STS876578N-2BT234522-X00002-23456789UJHG 70000
Part3=ST9876887N-1BT876577-X00003-65778978KJUH 80000

답변2

이 방법을 사용하려면 파일에 2번의 패스가 필요합니다. 한 번은 ID를 수집하고 다시 한 번 결과를 인쇄합니다.

awk '
    NR==FNR {if (/^Session=/) id[$1] = $2; next} 
    /^Part/ {$NF = id[$NF]; print}
' file file

답변3

for i in Session=9 Session=10 Session=11; do sed -n '/'$i'/p' j.txt| sed "N;s/\n/ /g"| sed 's/'$i'//g'; done
Part1=STS768976N-4BT345432-X00001-87675789AAAS   90000
Part2=STS876578N-2BT234522-X00002-23456789UJHG   70000
Part3=ST9876887N-1BT876577-X00003-65778978KJUH   80000

관련 정보