The UNIX and Linux Forums  


Go Back   В UNIX и Linux Форумы > Топ форумы > Shell программирование и сценарии
.
Google unix.com



Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Не удалось вставить данные через Crontab megh SUN Solaris 2 12-29-2008 08:36 AM
Не удалось вставить данные megh SUN Solaris 1 12-05-2008 12:20 AM
удалось включить данные. DAT файла. XLS может кто поможет мне kreddy2003 Shell программирование и сценарии 1 05-28-2008 06:33 AM
помочь мне для вставки данных Бабу @ корпуса UNIX для чайников Вопросы И Ответы 10 10-24-2006 03:25 AM
SED вставить данные из файла в другой? ctcuser Shell программирование и сценарии 4 05-03-2005 02:43 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 03-17-2009
aemunathan aemunathan is offline
Зарегистрированный пользователь
  
 

Регистрация: Май 2008
Сообщений: 75
Как ввести данные перед некоторых местах в ряду данных мер в зависимости от значений в строку

Привет

Мне необходимо делать некоторые вещи, как "найти и добавить, что перед" в файл, который содержит много записей. Это будет ясно в следующем примере.

Оригинал записи данных должны быть некоторые вещи, как эта

Код:
60119827  RTMS_LOCATION_CDR    INSTANT_POSITION_QUERY    1236574686123083rtmssrv7      20090309102806279           441           442
           783           WEB       1568          GMLC919443259137    FAILURE6         1236574665595654lessrv1

но из-за ряда ошибок в системе файл имеет одну недостающую информацию, и она выглядит


Код:
60119827  RTMS_LOCATION_CDR    INSTANT_POSITION_QUERY    1236574686123083rtmssrv7      20090309102806279                         442
           783           WEB       1568          GMLC919443259137    FAILURE6         1236574665595654lessrv1

как есть 248 charaters длины. но во втором отчете одна данных отсутствует т.е. 441

Мне нужно вставить 441 именно в этой позиции, если 442 доступен в следующем данных.
его некоторые вещи, как делать заявления ...

Я буду с разными значениями вместо 442, и их соответствующую прежней позиции данных

Как идти о какой-либо одной ... помочь мне ...
Меня много ошибок, как и файлы, это следует рассматривать, и поэтому я могу сделать что-либо, как загрузить в БД и вставки данных, основанных на ценностях в строку на позиции я говорил раньше (442)

Помощь меня!!!
Old 03-17-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Модератор
  
 

Регистрация: Февраль 2005
Место: Boston, MA
Сообщения: 5131
Цитата:
Первоначально Послано aemunathan
Я буду с разными значениями вместо 442, и их соответствующую прежней позиции данных
Как вы знаете, где именно вставить недостающие 'данные'?
Как вы знаете, что пропавшие без вести'441 'следует окружить на пространствах N / Вкладки слева и пространства м / вкладок по праву?
Old 03-17-2009
dariyoosh's Avatar
dariyoosh dariyoosh is offline
Зарегистрированный пользователь
  
 

Регистрация: Mar 2009
Место проведения: Иран (Тегеран)
Сообщений: 44
Привет,

Как уже было сказано, вы действительно нужно определить шаблон / структуру файла, включая точное число области, где данные должны быть изменены или, по крайней мере одна группа конкретных значений в соответствии с которым скрипта для поиска файлов, а также добавить чего не хватает.

Только за предоставленную вам первая идея, если конкретные значения 441 и 442, то в следующий KornShell скрипт сделает работу


Код:
#!/bin/ksh

RESULT=""

while read LINE
do
    for ITERATOR in $LINE
    do
        if [[ $ITERATOR = "442"  ]]
        then
            RESULT="$RESULT 441 $ITERATOR"
        else
            RESULT="$RESULT $ITERATOR"
        fi
    done
    RESULT="$RESULT\n"
done < $1

print "$RESULT" > $1

Так что, если Существуют несколько значений, вы можете задать их в за петлю.

Тем не менее, это работает, если и только если разделители в файле имеют значения по умолчанию для IFS, которая, \ N \ T и ''.

Привет,
Old 03-18-2009
aemunathan aemunathan is offline
Зарегистрированный пользователь
  
 

Регистрация: Май 2008
Сообщений: 75
Привет
Где я могу упомянуть имя файла для чтения строки из ... в ур сценарий.
Old 03-18-2009
dariyoosh's Avatar
dariyoosh dariyoosh is offline
Зарегистрированный пользователь
  
 

Регистрация: Mar 2009
Место проведения: Иран (Тегеран)
Сообщений: 44
Цитата:
Первоначально Послано aemunathan View Post
Привет
Где я могу упомянуть имя файла для чтения строки из ... в ур сценарий.
Очевидно, в командной строке, например, если файл сценария зовут myscript.ksh и имя файла является MyFile Вы пишете:

$. / Myscript.ksh MyFile
Old 03-18-2009
aemunathan aemunathan is offline
Зарегистрированный пользователь
  
 

Регистрация: Май 2008
Сообщений: 75
Привет

Его рабочий, но есть перераспределение в данный интервал.

Существующие данные позиции не должна быть нарушена, и количество символов, 248 должны быть сохранены в результате слишком

Там будут пробелы в конце каждой строки, и в данный период, как хорошо. пустое пространство indiactes нет данных для этой области.

Собственно Существуют определенные имена полей, в которых создаются отчеты, если это поле не в докладе, будет пустое место упомянуть о том, что.

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

там должно быть 11 пробелами после времени: 20090309102806279
После этого мне нужно вставить 441 при 442 присутствует.
Old 03-18-2009
Goldorakk's Avatar
Goldorakk Goldorakk is offline
Зарегистрированный пользователь
  
 

Регистрация: Февраль 2009
Местонахождение: Франция
Сообщений: 43
Очень сложно в сценарий оболочки для обработки строки с пробелами ... Попробуйте этот код и начать что-нибудь типа:. / Myscript INFILE outfile

Допустим, стоимость 441/442 на позициях 116 и 130.
Если несколько строк содержит символ #, изменения в сценарий с другой, не используемых символов.


Код:
#!/bin/ksh

POS1=116 ; VAL1=441
POS2=130 ; VAL2=442

VAL_LEN=3

XPOS1=$((POS1 + $VAL_LEN - 1))
XPOS2=$((POS2 + $VAL_LEN - 1))

echo POS1=$POS1,XPOS1=$XPOS1
echo POS2=$POS2,XPOS2=$XPOS2

infile=$1
outfile=$2

NBL=$(wc -l $infile)
NBC=0

while [ $NBC -lt $NBL ]
do
        (( NBC = NBC + 1 ))

        xval1=$(head -$NBC $infile | tail -1 | cut -b$POS1-$XPOS1)
        xval2=$(head -$NBC $infile | tail -1 | cut -b$POS2-$XPOS2)

        if [ "$xval2" = "$VAL2" ]
        then
                if [ "$xval1" = "$VAL1" ]
                then
                        head -$NBC $infile | tail -1 >> $outfile
                else
                        # Must replace with $VAL1

                        echo "Must replace on line "$NBC

                        k1=$(head -$NBC $infile | tail -1 | sed 's/ /#/g')
                        (( ZPOS1 = POS1 - 1 ))
                        k2=$(echo $k1 | cut -b1-$ZPOS1)
                        (( ZPOS1 = XPOS1 + 1 ))
                        k3=$(echo $k1 | cut -b$ZPOS1-)
                        
                        echo "${k2}${VAL1}${k3}" | sed 's/#/ /g' >> $outfile
                fi
        else
                head -$NBC $infile | tail -1 >> $outfile
        fi
done

Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 01:47 PM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0