LINUX.ORG.RU

Сообщения serg_6162

 

Странности при выводе в переменную даты

Странности при выводе в переменную даты в формате date --date=«1 days ago» +%a' '%b' '%e И поиск в тексте по шалону, заданной переменной Есть скрипт

#!/bin/bash

dt1d_f1=`date --date=«1 days ago» +%a' '%b' '%e`

dt1d_f2=`date --date=«1 days ago» +%a' '%b'_'%e` file6=/usr/scr/1.log

date --date=«1 days ago» +%a' '%b'_'%e > 4.log

#Tue Dec 3 Выводит по одному пробелу

# Если же эту команду ввести в командной строке вывод будет уже другим # date --date=«1 days ago» +%a' '%b' '%e # Tue Dec 3 Здесь между Dec и 3 ДВА пробела

# Почему это происходит? Как мне добиться, чтобы между Dec и 3 было два пробела? # Это решается через sed, но как-то не красиво получается.

sed 's/\_/ /g' 4.log >> 5.log #Заменим символ _ на пробел

echo $dt1d_f2 | sed 's/\_/ /g'>3.log #выведем день, день недели и месяц sed 's/$/\«/g' 3.log > 4.log # добавим в начало и конец строки символ » sed 's/^/\«/g' 4.log > 5.log # добавим в начало и конец строки символ »

var1=`sed 's/^/\«/g' 4.log` echo $var1 #выводит “”Tue Dec 3” почему спереди две двойных кавычки, хотя # в файле 5.log по одной кавычке ”Tue Dec 3”

cat $file6 | grep $var1 | grep $dt1df4 | grep -v „timestamp“ > 7.log # почему-то не работает. Выдает #ошибку (см. текст ниже)

echo „Priehaly“

/usr/scr/ilb.sh „„Tue Dec 3“ grep: Dec: No such file or directory grep: 3“: No such file or directory Usage: grep [OPTION]... PATTERN [FILE]... Try `grep --help' for more information.

Почему cat | grep воспринимает эту переменную без кавычек? Если в командной строке задать тоже самое, все работает.

serg_6162
()

Не понимаю почему case $x1 in .... case $x2 in ... дублирует записи

Необхоимо проверить наличие трех последних бэкапов, вычислить длину файлов и в зависимости от длины вывести размер файла в удобочетаемой форме. Длина размеров бэкапа заносится в файл 1.log В файле может три цифры, две, одна и ни одной (не было бэкапов) Пример: в файле есть текст 11 11 (число 11 пробел число 11) Зпуская скрипт,получаю по две записи от каждого бэкапа. Почему это происходит? переменная x1 равна 11 переменная x2 равна 11 переменная x3 равна null в файл записывается следующие строки

Size Kb |MON| D|MiSs| Name 49 872 896 Feb 18 23:12 tape130218_1 49 948 160 Feb 19 23:15 tape130219_2 49 872 896 Feb 18 23:12 tape130218_1 49 948 160 Feb 19 23:15 tape130219_2

#!/bin/bash

# вставляем данные бэкапов за последние три дня cp /dev/null 3.log find /optx/gebo-13 -mtime -3 -name tape* -ls >> 3.log cp /dev/null 1.log var2=`awk '{print substr(length($7),1,2)}' 3.log`

echo $var2 >> 1.log x1=`awk '{print $1}' 1.log` echo $x1 echo «x1» x2=`awk '{print $2}' 1.log` echo $x2 echo «x2» x3=`awk '{print $3}' 1.log` echo $x3 echo «x3»

case $x1 in 11) awk '{print substr($7/1024,1,2) " " substr($7/1024,3,3) " " substr($7/1024,6,3) " " $8 " " $9 " " $10 " " substr($11 length($11),length($11)-11,12) " «}' 3.log >> 2.log ;; 12) awk '{print substr($7/1024,1,3) » " substr($7/1024,4,3) " " substr($7/1024,7,3) " " $8 " " $9 " " $10 " " substr($11 length($11),length($11)-11,12) " «}' 3.log >> 2.log ;; 13) awk '{print substr($7/1024,1,1) » " substr($7/1024,2,3) " " substr($7/1024,5,3) " " substr($7/1024,8,3) " " $8 " " $9 " " $10 " " substr($11 length($11),length($11)-11,12) " «}' 3.log >> 2.log ;; *) echo „alarm x1“ ;; esac

case $x2 in 11) awk '{print substr($7/1024,1,2) » " substr($7/1024,3,3) " " substr($7/1024,6,3) " " $8 " " $9 " " $10 " " substr($11 length($11),length($11)-11,12) " «}' 3.log >> 2.log ;; 12) awk '{print substr($7/1024,1,3) » " substr($7/1024,4,3) " " substr($7/1024,7,3) " " $8 " " $9 " " $10 " " substr($11 length($11),length($11)-11,12) " «}' 3.log >> 2.log ;; 13) awk '{print substr($7/1024,1,1) » " substr($7/1024,2,3) " " substr($7/1024,5,3) " " substr($7/1024,8,3) " " $8 " " $9 " " $10 " " substr($11 length($11),length($11)-11,12) " «}' 3.log >> 2.log ;; *) echo „alarm x2“ ;; esac

case $x3 in 11) awk '{print substr($7/1024,1,2) » " substr($7/1024,3,3) " " substr($7/1024,6,3) " " $8 " " $9 " " $10 " " substr($11 length($11),length($11)-11,12) " «}' 3.log >> 2.log ;; 12) awk '{print substr($7/1024,1,3) » " substr($7/1024,4,3) " " substr($7/1024,7,3) " " $8 " " $9 " " $10 " " substr($11 length($11),length($11)-11,12) " «}' 3.log >> 2.log ;; 13) awk '{print substr($7/1024,1,1) » " substr($7/1024,2,3) " " substr($7/1024,5,3) " " substr($7/1024,8,3) " " $8 " " $9 " " $10 " " substr($11 length($11),length($11)-11,12) " «}' 3.log >> 2.log ;; *) echo „Alarm x3“ ;; esac

# чистимся #rm 3.log #rm 2.log #rm 1.log

 

serg_6162
()

RSS подписка на новые темы