The UNIX and Linux Forums  
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.

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



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

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Перенос данных из одного файла в другой inquisitive101 UNIX для чайников Вопросы И Ответы 1 01-05-2009 03:42 AM
FTP - передача данных ограничениях. Администратор системы AIX 2 12-20-2006 03:11 AM
Передача данных в программы МПК механизмы?? boris35 UNIX для чайников Вопросы И Ответы 2 05-26-2005 01:12 PM
Данные с коррупцией с FTP-передача malcom UNIX перспективных И опытных пользователей 12 08-04-2003 08:38 AM
Сколько будет передавать данные на 100 полный 98_1LE UNIX для чайников Вопросы И Ответы 3 10-05-2001 10:48 AM

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 01-05-2009
inquisitive101 inquisitive101 is offline
Зарегистрированный пользователь
  
 

Регистрация: Январь 2009
Сообщений: 5
Перенос данных из одного файла в другой

Привет,
Я сравнительно новой для сценариев оболочки, Ive работал на нескольких основных сценариев и использовать большую часть команд Unix в простейших ситуациях. Но сейчас я столкнулся с задачей что-видимому, за меня.

У меня есть файл с данными в виде строк и столбцов:

123 4536 abcd4 677 BBB GGG NNN 32425
343 5656 abcd6 566 EEE FFF ООО 56454
343 5645 abcd7 556 ддд LLL JJJ 43536 ....
.
.
.
и т.д.

Мне нужен скрипт, чтобы получить эти данные, и поставить его в один вставить команду, которая находится в другом тексте file.The вставить команды будут в виде вставки в table_xyz значений ($ A, '$ B', '$ C', и т.д. ), где переменные будут ценностей из вышеуказанных данных, файл. вывод скрипта следует добавить столько заявлений Есть линий в данных file.As в
вставить в table_xyz значений (123, 4536, 'abcd4', 677, 'BBB', 'GGG', 'NNN', 32425)
вставить в table_xyz значений (343, 5656, 'abcd6', 566, 'ЭЭО', 'FFF', 'ООО' 56454) и т.д.

Некоторые вроде скрипт для хранения данных в массив или что-то повторять, и через него? Любая помощь, совет будет весьма признателен ...

Спасибо заранее
Old 01-05-2009
summer_cherry summer_cherry is offline Forum Advisor  
Зарегистрированный пользователь
  
 

Регистрация: Июнь 2007
Месторасположение: Пекин Китай
Сообщения: 1088
привет ниже Perl Сценарий может помочь вам
Не знаете ли ваши колонки в фиксированной длины, если да, то можете удалить эти отделка (а), а число <указать длину вашей ценности, поэтому убедитесь, что использование самой длинной <для всех из них в зависимости от вашего длинная колонка стоимости .


Код:
format TOP=
insert into table_xyz values(@<<<<<,@<<<<<,trim('@<<<<<<'),@<<<<<,trim('@<<<<<'),trim('@<<<<<'),trim('@<<<<<<'),@<<<<<<);
$a $b $c $d $e $f $g $h
.
$~=TOP;
open FH,"<a.txt";
while(<FH>){
	($a, $b, $c, $d, $e, $f, $g, $h)=split(" ",$_);
	write;
}
close FH;
Old 01-05-2009
pludi's Avatar
pludi pludi is offline Forum Staff  
Модератор
  
 

Регистрация: Декабрь 2008
Местонахождение:. На
Сообщения: 1872
Этот Perl Сценарий мог бы помочь вам. Он принимает 2 аргумента:
  1. Seperator используется (в вашем примере '')
  2. Таблица для вставки (в вашем примере 'table_xyz')
Данные сама читать со стандартного ввода, INSERT заявления для печати из стандартного.
Код:
#!/usr/bin/perl -W

use strict;
use warnings;

my $sep   = $ARGV[0];
my $table = $ARGV[1];
while ( my $line = <STDIN> ) {
    print "INSERT INTO $table VALUES(";
    my @line = split /$sep/, $line;
    for ( my $i = 0 ; $i < $#line ; $i++ ) {
        $_ = $line[$i];
        if (/\D/) {
            print '"', $_, '"';
        }
        else {
            print $_;
        }
        print ',' if $i < $#line - 1;
    }
    print ");\n";
}
Ваш пример даст
Код:
$ perl csv2sql.pl ' ' table_xyz < example.txt
INSERT INTO table_xyz VALUES(123,4536,"abcd4",677,"bbb","ggg","nnn");
INSERT INTO table_xyz VALUES(343,5656,"abcd6",566,"eee","fff","ooo");
INSERT INTO table_xyz VALUES(343,5645,"abcd7",556,"ddd","lll","jjj");
$
Old 01-05-2009
Кристоф Spohr Christoph Spohr is offline
Зарегистрированный пользователь
  
 

Регистрация: Sep 2008
Сообщений: 205
Или просто сценарий оболочки:

Код:
while read a b c d e f g h 
do 
    echo "insert into table_xyz values($a, $b, '${c}', $d, '${e}', '${f}', '${g}', $h)"
done < datafile
HTH Крис
Old 01-05-2009
inquisitive101 inquisitive101 is offline
Зарегистрированный пользователь
  
 

Регистрация: Январь 2009
Сообщений: 5
Спасибо, ребята .....

постараюсь 'Em из ... по крайней мере, теперь я знаю, в каком направлении нужно двигаться
Old 01-07-2009
inquisitive101 inquisitive101 is offline
Зарегистрированный пользователь
  
 

Регистрация: Январь 2009
Сообщений: 5
Ok о том, как сейчас, если у меня есть новый сценарий, где моя. CSV-файл выглядит следующим образом:

A, B, C, D
A, B, C, D
A, B, C, D
А, B, C, D
А, B, C, D
А, B, C, D


Мой вывод следует B 3 включить вопросы, которые лишь незначительно отличаются. а именно:

вставить в table_xyz значений (123, $ A, 'abcd4', 601, $ B, C $, D $, 32425)
вставить в table_xyz значений (124, $ A, 'abcd4', 602, $ B, C $, D $, 32425)
вставить в table_xyz значений (125, $ A, 'abcd4', 603, $ B, C $, D $, 32425)
вставить в table_xyz значений (126, $ E, 'abcd4', 601, $ B, C $, D $, 32425)
вставить в table_xyz значений (127, $ E, 'abcd4', 602, $ B, C $, D $, 32425)
вставить в table_xyz значений (128, $ E, 'abcd4', 603, $ B, C $, D $, 32425)

Проблема заключается в том, как 2-й и 4 поля в запросе должны б печать. в то время как 2-й пол должны б повторяется 3 раза (как читать в каждой строке файла данных), 4-го места на 3 приращениями и выходит обратно через каждые 3 строки из файла ...

любые предложения ...? нужно скрипт ...

Я попытался изменить сценарий с учетом корпуса Кристоф но вывод таков, что тот же 3 запросы повторяются столько раз, сколько там строк в моих данных файла перед тем, как перейти на ...
Closed Thread

Закладки

Теги
AWK, AWK отделкой, отделка, отделка AWK

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

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

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

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




Часовой пояс GMT -4. Текущее время 11:22 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