Я постараюсь ответить на ваш вопрос шаг за шагом. Просто предположим, что input
- это строка вашего входного файла:
Это довольно простая работа для awk
:
awk '{for (i=1; i<=NF; i++) { if($i == "R") { print i - 3; exit} } }' < input
Учитывая, как вы вычисляете дату, я предполагаю, что "R" не может быть в первой строке (иначе номер дня может быть 0).
Это еще проще:
awk '{print $1}' < input # for first column
awk '{print $2}' < input # for second column
В случае, если команда возвращает True
:
sed 's/ R / L /' < input
В случае, если команда возвращает False
:
awk '{
afterR=0;
for (i=1; i<=NF; i++){
if ($i == "R") {
$i = "F";
afterR=1;
}
if (afterR == 1 && $i == "O") {
$i = "F"
}
}
print $0
}' < input
Хотя это не приветствуется, я не вижу способа избежать зацикливания входных строк, так как для каждой строки нужно выполнить определенную команду. Имейте в виду, что для больших файлов это может быть очень медленно. Как может выглядеть ваш скрипт со всеми этими элементами:
while read line;
do
date="%m/d$(echo $line | awk '{for (i=1; i<=NF; i++) { if($i == "R") { print i - 3; exit} } }')/%Y"
result=$(./bpimagelist -client "$(echo $line | awk '{print $1}')" -policy "$(echo $line | awk '{print $2}')" -hoursago 100000 -U | awk -v date="$date" '$1 == date' | wc -l)
if [[ $result -ne 0 ]];
then
echo $line | sed 's/ R / L /'
else
echo $line | awk '{
afterR=0;
for (i=1; i<=NF; i++){
if ($i == "R") {
$i = "F";
afterR=1;
}
if (afterR == 1 && $i == "O") {
$i = "F"
}
}
print $0
}'
fi
done < myinputfile.txt
Используйте Webmin ; это веб-интерфейс с несколькими модулями, который позволяет вам визуально администрировать множество служб Linux. Он очень прост в использовании.
Если у вас несколько пользователей, вы также можете создавать пользователей с представлениями модулей, а некоторые модули позволяют устанавливать дополнительные ограничения для пользователей.
На уровне модуля DNS вы даже можете ограничить их определенными зонами DNS. Например, user1 может только редактировать зону xpto.com и перезапускать DNS-сервер.
Чтобы установить его в дистрибутив RH:
yum install webmin
или в Debian:
apt-get install webmin