!/빈/배시

!/빈/배시

두 열의 공백으로 구분된 데이터를 읽고 열 2의 옆에 Null 또는 빈 값이 포함될 수 있는 열 1의 값을 파일로 인쇄하는 방법, 그렇지 않으면 두 열 모두에 값이 있는 경우 다음을 수행합니다.

데이터 세트:

User Numbers
u1 12   
u3 45
u3 20
u4 5
u5 
u6 7
u7 32
u8 
u9 10
u10 14

답변1

예를 들어 awk를 사용하여 이 작업을 수행할 수 있습니다. 변수 $1이며 $2열의 텍스트와 NR열 번호를 포함합니다.

awk '
    NR == 1 {print "Only one column: " $1}
    NR == 2 {print "The sum of the two columns is", $1 + $2}
'

답변2

답변해 주셔서 감사합니다. 귀하의 답변을 시도해 보았는데 일부 부분은 작동합니다. 단, 1열에 2열에 잘못된 사용자 값이 표시되는 경우는 제외됩니다. 나는 결국 머리를 숙이고 다음과 같은 것을 만들었습니다.

!/빈/배시

그리고 IFS= 읽기 - 한 줄; do COL1=$(printf "%s\n" "${line[@]}" | awk '{print $1}') COL2=$(printf "%s\n" " ${line[@]}" | awk '{print $2}') SRCH1=$(ldapsearch "(uid=${COL1})" | grep uid: | awk '{print $2}') SRCH2=$(ldapsearch "(uid=${COL1}) )" | grep 약어: awk '{print $2}') SRCH3=${SRCH2} if [ "$COL1" = "$SRCH1" -a "$COL2" = "$ SRCH2" ]; then echo "UID: $SRCH1" echo "INITIALS: $SRCH2" else echo "NO UID: $COL1" echo "NO INITIALS: $COL2" fi done < datafile8

관련 정보