내가 이전의 두 필드는 이미 파일에서 발견 된 경우 열을 추가하려고를 추가 한 후 일치하는 경우.배쉬 - 두 개의 열이 열
나는 많은 항목이있는 쉼표로 구분 된 파일을 가지고 있고 두 개의 열, 두 번째 열 일곱 번째에 일치하는 모든 라인을 찾아야합니다. 모두가 여러 행에 발견되면 다음 "공유"라는 여덟 번째 열을 추가합니다.
파일 내용 :
WPC PROD LINUX O,1808,4194304000,10,3G,4G,66314
WPC PROD LINUX O,1809,3145728000,10,3G,4G,66314
WPC PROD LINUX O,1812,4194304000,10,3G,4G,66314
WPC PROD LINUX,1808,4194304000,10,1D,2D,66314
WPC PROD LINUX,1809,3145728000,10,1D,2D,66314
WPC PROD LINUX,1812,4194304000,10,1D,2D,66314
WPCESXCS40BP01_0,1808,4194304000,10,1D,2D,66314
WPCESXCS40BP01_0,1809,3145728000,10,1D,2D,66314
WPCESXCS40BP01_0,1812,4194304000,10,1D,2D,66314
출력이 원하는 :
WPC PROD LINUX O,1808,4194304000,10,3G,4G,66314,shared
WPC PROD LINUX O,1809,3145728000,10,3G,4G,66314,shared
WPC PROD LINUX O,1812,4194304000,10,3G,4G,66314,shared
WPC PROD LINUX,1808,4194304000,10,1D,2D,66314,shared
WPC PROD LINUX,1809,3145728000,10,1D,2D,66314,shared
WPC PROD LINUX,1812,4194304000,10,1D,2D,66314,shared
WPCESXCS40BP01_0,1808,4194304000,10,1D,2D,66314,shared
WPCESXCS40BP01_0,1809,3145728000,10,1D,2D,66314,shared
WPCESXCS40BP01_0,1812,4194304000,10,1D,2D,66314,shared
내가 검색 한이 링크 Awk - matching on 2 columns for differents lines를 찾았지만 꽤 내가 무엇을해야하지 않습니다, 그것은 단지 다음에 일치 선.
while IFS=',' read host device blk poolnum porta portb serial
ldev_count=`cat outputtest.txt | grep -iw $device | grep -iw $serial | wc -l`
if [[ $ldev_count > 1 ]] ; then
echo "$host, $device, $blk, $poolnum, $porta, $portb, $serial, SHARED" >> semifinal.txt
else
echo "$host, $device, $blk, $poolnum, $porta, $portb, $serial" >> semifinal.txt
fi
done < outputtest.txt
을하지만 매우 느린 :
나는 이런 식으로 뭔가를 할 수 있습니다. 나는 더 나은 해결책을 찾기 위해 바라고 있어요.
도움 주셔서 감사합니다.
는 다음과 같은 노력이 당신을 도움이 있으면 알려 주시기 바랍니다 수
2 번째와 7 번째 열을 강조 표시 해 주실 수 있습니까?이 2 개의 열이 같은지 알 수 없으므로 혼란 스러울 수 있습니다. 그들을 강조 표시 해주시겠습니까? – RavinderSingh13
은 가독성을 높이기 위해 서식을 편집했습니다. –
두 행 사이에'2 & 7' 열이 공유되어 있다면 (예 :'1808'과'66314'), 두 공유 선 끝 부분에''shared "를 덧붙이 길 원할 것입니다 ? 정확히 –