!/bin/bash

!/bin/bash

如何读取两列中以空格分隔的数据,并将列 1 中可能包含列 2 中旁边的 Null 或空值的值打印到文件中,否则如果两列中都有值,则执行操作:

数据集:

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 列中显示了不正确的用户值。我最终把我的头放在周围并创建了这样的东西:

!/bin/bash

而 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" ];然后 echo "UID: $SRCH1" echo "INITIALS: $SRCH2" else echo "NO UID: $COL1" echo "NO INITIALS: $COL2" fi done < datafile8

相关内容