!/空/配布

!/空/配布

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

関連情報