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



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered By Powered by Google
 
Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 05-08-2009
Зарегистрированный пользователь
 

Регистрация: Апрель 2009
Сообщений: 20
Как извлечь некоторые части файла для создания некоторых outfile

Привет Все,
Я очень новое в программировании. Мне нужна помощь.
Я один входной файл, как:

Число инвалидов таксоны: 9
Загружается отображение файлов: ncbi.map
Нагрузка отображения:
taxId2TaxLevel: 469951
--- Subsample читает (20%): 66680 из 334386
Обработка: дерево-из-резюме
Запуск деревьев из-краткий алгоритм
Таксономия:
Gammaproteobacteria: 2767
Alphaproteobacteria: 4123
Deltaproteobacteria: 1343
Epsilonproteobacteria: 26
Не назначено: 1445
Нет хитов: 220253
+++++++++++ Конец резюме для файла: B-красно-sum.txt
--- Subsample читает (20%): 67037 из 334386
Обработка: дерево-из-резюме
Запуск деревьев из-краткий алгоритм
Таксономия:
Gammaproteobacteria: 2809
Alphaproteobacteria: 4001
Deltaproteobacteria: 1208
Epsilonproteobacteria: 15
Не отнесены: 299
Нет хитов: 461890
+++++++++++ Конец резюме для файла: B-красно-sum.txt

::::: И т.д.

Я хочу создать несколько выходных, как:
Из file1.txt (grep, которая, в следующей строке "Таксономия:" до "+++++++++++ End "), не место в передней линии, и так далее.

Таким образом, желаемые ouput будет:
outfile1.txt
Gammaproteobacteria: 2767
Alphaproteobacteria: 4123
Deltaproteobacteria: 1343
Epsilonproteobacteria: 26
Не назначено: 1445
Нет хитов: 220253

outfile2.txt
Gammaproteobacteria: 2809
Alphaproteobacteria: 4001
Deltaproteobacteria: 1208
Epsilonproteobacteria: 15
Не отнесены: 299
Нет хитов: 461890

и так далее.

Может ли кто-нибудь, пожалуйста, помогите мне в этом вопросе?

Я попытался с кодом, как это. Но не тренировки.
-------------------------------------------------- ------------------------
#! / BIN / tcsh
если $ # argv! \u003d "1", а затем
Эхо "Использование: процесс файл-скрипт 1-вывода файлов, как-inputfile"
выход 0
ENDIF

FIL_NM \u003d $ 1

ул \u003d ""
Кошка $ FIL_NM | хотя читать LINE
делать
если [ "` Эхо $ LINE | AWK '(печати $ 1)' `" \u003d "+++++++++++ Начало "], затем
N \u003d 1
C \u003d 1
FI
если [ "` Эхо $ LINE | grep `Гамма"], затем
NEW_FIL_NM \u003d $ FIL_NM "_" $ n.txt "
FI

FI
если [ "` Эхо $ LINE | AWK '(печати $ 1)' `" \u003d "+++++++++++ Конец "], затем
N \u003d 0
FI
готово
-------------------------------------------------- ------
Пожалуйста, помогите ...
Большое спасибо заранее ...
С наилучшими пожеланиями,
Митра
Рекламные ссылки
Old 05-08-2009
vgersh99's Avatar
Модератор
 

Регистрация: Февраль 2005
Место: Boston, MA
Сообщения: 5199

Код:
nawk '
    /^Taxonomy/ {p=6;close(out);out="output" ++cnt ".txt";next}
    p &&p-- { print > out }' myInputFile

Old 05-08-2009
Зарегистрированный пользователь
 

Регистрация: Sep 2006
Сообщения: 2604
Если у вас есть Python, вот альтернативное решение

Код:
f=0;i=0
for line in open("file"):
    line=line.strip()
    if line.startswith("+++++++++++"): 
        f=0
        o.close()
    if "Taxonomy:" in line: 
        f=1;i=i+1
        o=open("out_"+str(i)+".txt","w")
    if f:
        print >>o, line

Old 05-08-2009
Зарегистрированный пользователь
 

Регистрация: Апрель 2009
Сообщений: 20
Здравствуй ghostdog74,
Спасибо за ваш ответ. Но я сожалею, что я забыл упомянуть: в моей входной файл Есть не всегда только 6 линий. Я просто скопировали несколько строк .. Это линий варьируется от 100 до 200. Поэтому необходимо, чтобы программа для чтения +++++++++ End.

Большое спасибо,
Митра.
Old 05-08-2009
durden_tyler's Avatar
Зарегистрированный пользователь
 

Регистрация: Апрель 2009
Сообщений: 672
И вот это Perl Решение:


Код:
$
$
$ cat input.txt
Number of disabled taxa: 9
Loading mapping file: ncbi.map
Load mapping:
taxId2TaxLevel: 469951
--- Subsample reads (20%): 66680 of 334386
Processing: tree-from-summary
Running tree-from-summary algorithm
Taxonomy:
Gammaproteobacteria: 2767
Alphaproteobacteria: 4123
Deltaproteobacteria: 1343
Epsilonproteobacteria: 26
Not assigned: 1445
No hits: 220253
+++++++++++End of summary for file: B-Red-sum.txt
--- Subsample reads (20%): 67037 of 334386
Processing: tree-from-summary
Running tree-from-summary algorithm
Taxonomy:
Gammaproteobacteria: 2809
Alphaproteobacteria: 4001
Deltaproteobacteria: 1208
Epsilonproteobacteria: 15
Not assigned: 299
No hits: 461890
+++++++++++End of summary for file: B-Red-sum.txt
::::: and so on
$
$
$
$ perl -ne '{$/=""; $i=1;
>   while (/^Taxonomy:.(.*?)\+{11}/msgi) {
>     open(OUT,">outfile".$i++.".txt"); print OUT $1; close(OUT);
>   }}' input.txt
$
$
$ cat outfile1.txt
Gammaproteobacteria: 2767
Alphaproteobacteria: 4123
Deltaproteobacteria: 1343
Epsilonproteobacteria: 26
Not assigned: 1445
No hits: 220253
$
$
$ cat outfile2.txt
Gammaproteobacteria: 2809
Alphaproteobacteria: 4001
Deltaproteobacteria: 1208
Epsilonproteobacteria: 15
Not assigned: 299
No hits: 461890
$
$

tyler_durden
Old 05-08-2009
vgersh99's Avatar
Модератор
 

Регистрация: Февраль 2005
Место: Boston, MA
Сообщения: 5199

Код:
nawk '
   /^Taxonomy/ {p++;close(out);out="output" ++cnt ".txt";next}
   /^[+]+End/ { p=0}
   p { print > out }' myInputFile

Old 05-08-2009
Зарегистрированный пользователь
 

Регистрация: Sep 2006
Сообщения: 2604
Цитата:
Первоначально Послано iammitra View Post
Здравствуй ghostdog74,
Спасибо за ваш ответ. Но я сожалею, что я забыл упомянуть: в моей входной файл Есть не всегда только 6 линий. Я просто скопировали несколько строк .. Это линий варьируется от 100 до 200. Поэтому необходимо, чтобы программа для чтения +++++++++ End.

Большое спасибо,
Митра.
Ну, я не уверен, что я вам, но я вижу, других решений включают "Конец ', поэтому, если вы уверены, что ++++++++ не является уникальным, можно добавить слово" Конец "

Код:
....
if line.startswith("+++++++++++End"): 
....

Рекламные ссылки
Closed Thread

Закладки

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

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

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

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


Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Экстракт из колонок 2 разные файлы и создать новый файл Amit.Sagpariya Shell программирование и сценарии 1 04-30-2009 08:23 AM
Установка outfile с (скобки) Pablo_beezo Shell программирование и сценарии 1 10-02-2008 10:15 AM
Получение частей файла bebop1111116 Shell программирование и сценарии 11 10-09-2006 11:19 AM
Фильтр части большого файла с использованием AWK скрипта или SED apalex Shell программирование и сценарии 1 07-25-2005 05:45 PM
cksum частей файла crazykelso UNIX для чайников Вопросы И Ответы 6 07-30-2002 12:38 PM



Часовой пояс GMT -4. Текущее время 12:18 AM.


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

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