Создание таблицы выходных

Мне нужен скрипт для преобразования этого списка праздников в формат даты. Мой входной файл

MMYYYY CAL_B2K_ID   123456789012345678901234567890  
------ ------------ ------------------------------- 
012016 821          YY      Y      Y      Y      Y  
012016 DC           YY      Y      Y      Y      Y  
022016 DC                Y      Y      Y      Y     
022016 821               Y      Y      Y      Y     
032016 DC               Y      Y      Y      Y      
032016 821              Y      Y      Y      Y      
042016 821           Y      Y      Y      Y         

Теперь 123456789012345678901234567890 похож на дату, когда впервые приходит 0, это 10, а затем 1 означает 11, и это так. ...

 1 2 3 4 5 6 7 8 9 10 11 12 13 14............

Итак, я создал сценарий, где всегда присутствует Y, он конвертируется в дату, предположим, что в первой строке Y присутствует под 1, 2,9,6,3,9

В моем сценарии я вырезал каждую строку из столбца 21-52 и проверяя, является ли этот столбец Y, если да, то он скрывается в дате, например, если Y присутствует в столбце номер 23. Затем я вычитаю (номер столбца - 20), он дает мне 3 А затем я использую оператор concat для создания даты.

Ниже мой сценарий.Но я сталкиваюсь с проблемой, когда нет Y ни под одним столбцом, он принимает мой var как пустой, а blank также попадает в истинное состояние.

var=echo $f1 | cut -c$i
if [[ "$var"='Y' ]] ;

А мой сценарий ниже.

 rm f1.txt
 set -x
 while read f1
 do
 for((i=21;i<23;i++));
 do
 var=`echo $f1 | cut -c$i`
 if [[ "$var"='Y' ]] ;
 then
 echo $var
 month=`echo $f1 | cut -c1-2`
 year=`echo $f1 |cut -c3-6`
 date=$(($i-20))
 echo $year"-"$month"-"$date >> f1.txt
 fi
done
done < holiday_india.txt`

Пожалуйста, дайте мне знать, что я буду делать, чтобы, когда в var ничего нет, он не попадал под условие If.

Отличие этого скрипта состоит в том, что он преобразует весь столбец каждой строки с 21 по 52 в дату, а не там, где присутствует Y.

Надеюсь, теперь я проясню.

-2
27.09.2016, 07:23
0 ответов

Теги

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