2つの列のスペースで区切られたデータを読み取り、列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 =読み取り - 1行。 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