Прочитать данные в двух столбцах и вывести значения, если они содержат NULL или пробелы

Как я могу прочитать данные, разделенные пробелом на два столбцы и вывести значение из столбца 1, которое может содержать пустое или пустое значение рядом с ним в столбцах 2 в файл, в противном случае выполните действие, если оно имеет значения в обоих столбцах:

набор данных:

User Numbers
u1 12   
u3 45
u3 20
u4 5
u5 
u6 7
u7 32
u8 
u9 10
u10 14
-1
04.03.2017, 19:45
2 ответа

Большое спасибо за ваш ответ... Я попробовал ваш ответ и некоторая часть действительно работала... кроме столбца 1, который показывал неправильного пользователя для значения в столбце 2. В итоге я разобрался с этим и создал что-то вроде этого:

!/bin/bash

while IFS= read -a line; 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 initials: | awk '{print $2}') SRCH3=${SRCH2} if [ "$COL1" = "$SRCH1" -a "$COL2" = "$SRCH2" ]; then echo "UID: $SRCH1" echo "ИНИЦИАЛЫ: $SRCH2" else echo "НЕТ UID: $COL1" echo "НЕТ ИНИЦИАЛОВ: $COL2" fi done < datafile8

0
28.01.2020, 05:08

Вы можете сделать это, например, с помощью 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
28.01.2020, 05:08

Теги

Похожие вопросы