![]() |
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| неотложной помощи: хочу, чтобы проверить данные в Oracle из flate файл | unknown123 | Shell программирование и сценарии | 3 | 05-18-2009 05:36 PM |
| Как конвертировать результат в выборе запроса для запятую данных - срочный PLS | Hemamalini | Shell программирование и сценарии | 1 | 06-16-2008 04:27 AM |
| форматирования жесткого диска (очистка) | Jamiee | SUN Solaris | 0 | 06-12-2008 07:48 AM |
| Помощь замены или очистки Unicode символы | roninuta | Shell программирование и сценарии | 3 | 01-21-2008 11:39 AM |
| [срочно нужна помощь] сравнить данные | Bucci | Shell программирование и сценарии | 2 | 02-27-2007 11:27 PM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Привет Все,
У меня есть Flatfile (любая делимитация) миллионов строк данных, в которой я scrubb данные строки из позиции ($ 1), которые были даны во входных параметров до тех пор, пока длина ($ 2) в входных параметров. Я использованы AWK, SED но я не в состоянии это сделать. скраб ключа - 12345 должно быть заменено 67890 например: 01289 - до очистки 06789 - после очистки Например: sample.ksh 6 4 Ввод - Flatfile: ------- "1234,5678, 0987,12345667,000000976655, +1234,013994878356 " "0987,23467,11243554,0000887651,1234567,09876,1234455 " "0987675,1223443,797784784784,09866545, +232322,097865 " Я хочу, чтобы в качестве выходного файла шероховатый как ниже: "1234,0678, 0987,12345667,000000976655, +1234,013994878356 " "0987,78967,11243554,0000887651,1234567,09876,1234455 " "0987675,6778443,797784784784,09866545, +232322,097865 " |
|
||||
|
Если у вас есть Python
Код:
#!/usr/bin/env python
import string
FROM="12345"
TO="67890"
table=string.maketrans(FROM,TO)
for line in open("file"):
line=line.strip().split(",")
line[1]=line[1][:4].translate(table) + ''.join(line[1][4:])
print ','.join(line)
Код:
# python test.py "1234,0678,0987,12345667,000000976655,+1234,013994878356" "0987,78967,11243554,0000887651,1234567,09876,1234455" "0987675,6778443,797784784784,09866545,+232322,097865" |
|
||||
|
Код:
sub scrub{
my($pos,$len)=(@_);
while(<DATA>){
substr($_,$pos-1,$len) =~ y/12345/67890/;
print $_;
}
}
scrub(6,3);
__DATA__
1234,5678,0987,12345667,000000976655,+1234,013994878356
0987,23467,11243554,0000887651,1234567,09876,1234455
0987,1223443,797784784784,09866545,+232322,097865
|
|
||||
|
СРОЧНО: - очистка данных
Все Привет, спасибо за ответ ....
I DONT имеют Python или Perl .... Я только KSH, Bash, SH, csh Пожалуйста, помогите мне |
|
||||
|
Цитата:
Код:
awk -F"," 'BEGIN{
t["1"]="6"
t["2"]="7"
t["3"]="8"
t["4"]="9"
t["5"]="0"
}
{
s=""
for(i=1;i<=4;i++){
if( substr($2,i,1) in t ){
s=s t[substr($2,i,1)]
}else{
s=s substr($2,i,1)
}
}
$2=s substr($2,5)
}
1
' OFS="," file
|
|
||||
|
СРОЧНО: - Данные скрубберной очистки
вышеуказанный код не работает .....
Пожалуйста, помогите мне в письменном виде этот код в KSH, CSH, SH .... ----- ----- Обновление темы Привет, ребята, Я написал AWK прог ... а ниже, как это сделать. но делать все номера внутри Flatfile. Код #: #! / USR / BIN / AWK-F BEGIN ( CnvFrom \u003d "0123456789"; CnvTo \u003d "4590382617"; Поле \u003d 1; ) ( newField \u003d "" для (i \u003d 1; I <\u003d длина ($ полевой); I + +) ( символ \u003d substr ($ Полевая, I, 1); если (POS \u003d индекс (CnvFrom, символ)) символ \u003d substr (CnvTo, POS, 1) newField \u003d newField символ ) Поле $ \u003d newField Версия для печати ) Но мое требование состоит в том, чтобы изменить / перевести значения из позиции (входной параметр - $ 2) и длину (входной параметр - $ 3) для Flatfile, упомянутых в каталоге (входной параметр - $ 1). Пожалуйста, помогите мне .... например: scrub.ksh file1 68 9 ($ 1 - имя файла, $ 2-postion (68), $ 3 - lenth от позиций (9)) Перед скраб-file1: --------------------- "37713000000", "12000000202", "0000000000000000000007102", "0000377310013683931", 20090114,20080301,20080331,20060304, +000000000005897". "37713000000", "12000000202", "0000000000000000000007102", "0000377310013683931", 20090114,20080301,20080331,20060304, +000000000005897". "37713000000", "12000000202", "0000000000000000000010739", "0000377310044493243", 20090114,20080501,20080531,20070224, +000000000000000". "37713000000", "12000000202", "0000000000000000000010739", "0000377311018365607", 20090114,20080401,20080430,20070224" После скраб-file1: ----------------- "37713000000", "12000000202", "0000000000000000000007102", "0000377310450210705", 20090114,20080301,20080331,20060304, +000000000005897". "37713000000", "12000000202", "0000000000000000000007102", "0000377310450210705", 20090114,20080301,20080331,20060304, +000000000005897". "37713000000", "12000000202", "0000000000000000000010739", "0000377310433370930", 20090114,20080501,20080531,20070224, +000000000000000". "37713000000", "12000000202", "0000000000000000000010739", "0000377311451028246", 20090114,20080401,20080430,20070224" Пожалуйста, помогите мне ..... Я хочу, скраб, как на входных параметров ..... Пожалуйста, помогите .... Последний раз редактировалось padhu.47; на 05-27-2009 04:43 AM.. |
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|