The UNIX and Linux Forums  

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



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

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Concatenating несколько строк в одну строку, если соответствуют структуре phixsius Shell программирование и сценарии 13 01-24-2008 11:02 PM
Concatenating значения в файле amitkhiare Shell программирование и сценарии 7 10-09-2007 10:43 PM
concatenating статическая строка для записи в файл данных gillbates Shell программирование и сценарии 5 06-22-2006 07:22 PM
Нужна помощь добавлением строк / объединения строк в файл ... mr_manny Shell программирование и сценарии 2 01-06-2006 06:45 PM
Concatenating линий и форматирование. Tonka52 Shell программирование и сценарии 3 12-01-2004 09:24 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 06-26-2006
srivsn srivsn is offline
Зарегистрированный пользователь
  
 

Регистрация: Dec 2005
Сообщений: 32
Concatenating две строки в файл

привет
Мое требование у меня есть файл с записями, как это

Имя файла:: XYZ

A \u003d 1
B \u003d 100200
, 300400
, 500600
C \u003d 700800
D \u003d 900

Я хочу изменить свой файл
A \u003d 1
B \u003d 100200300400
C \u003d 700800
D \u003d 900

если запись начинается с "," эта линия должна паров предыдущих line.please сценария или дать команду для получения необходимых мой выходной файл

спасибо
Old 06-26-2006
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
  
 

Регистрация: Mar 2005
Расположение: в конечном узле B + дерево
Сообщения: 2958
всегда существует лучшее решение,


Код:
#! /usr/bin/ksh

awk '{ if( $0 ~ /^,/ ) { printf "%s 1\n",$0 } else { printf "%s 0\n",$0 } }' file | while read
line ind
do
  if [ $ind -eq 0 ]
  then
     echo $var
     var=""
  fi
  var=$var$line
done
echo $var

exit 0

ваш входной файл был
, 500600

Я считаю, что они также должны быть приложены с предыдущей линии,

О / р от этого скрипта

Код:

a=1
b=100,200,300,400,500,600
c=700,800
d=900

Old 06-26-2006
Klashxx's Avatar
Klashxx Klashxx is offline Forum Advisor  
HP-UX/Linux/Oracle
  
 

Регистрация: Февраль 2006
Место проведения: Альмерия ", Испания
Сообщений: 393
Другой способ:

Код:
while read LINE
do
echo ${LINE}|grep -qE "^,+"
if [ $? -eq 0 ] 
then
   echo "${LINE}\c"
else
   echo "\n${LINE}\c"
fi
done<input_file
echo

Old 06-26-2006
reborg's Avatar
reborg reborg is offline Forum Staff  
Администратор
  
 

Регистрация: Mar 2005
Место проведения: Ирландия
Сообщения: 4245

Код:
sed -e 'H;$!d;x;s/\n,/,/g' file > newfile

Old 06-27-2006
mbketan mbketan is offline
Зарегистрированный пользователь
  
 

Регистрация: Июнь 2006
Сообщений: 9
Сцепить она

Еще одно решение:

я в `Cat` TT
делать
если [ `Эхо $ I | Cut-C1-1` \u003d ","]
тогда
prevline \u003d "$ prevline $ I"
еще
Эхо $ prevline
prevline \u003d $ I
FI
готово
Эхо $ prevline
Old 06-27-2006
LivinFree's Avatar
LivinFree LivinFree is offline Forum Advisor  
Goober Extraordinaire
  
 

Регистрация: Jul 2001
Место: Portland, OR, Соединенные Штаты Америки
Сообщения: 1,584
Хотя мы на это, еще один способ:

Код:
#! /bin/bash

while read line; do
 [[ $line == ,* ]] && {
  printf "%s" "$line"
 } || {
  printf "\n%s" "$line"
}
done; printf "\n"

Принимает переадресации и от входной трубы, как и большинство остальных. Я должен сказать, мне нравится SED приведенном выше примере. Довольно отличный ...
Old 07-17-2008
ca_sr2274 ca_sr2274 is offline
Зарегистрированный пользователь
  
 

Регистрация: Jul 2008
Сообщений: 2
Привет Все,

Как совместить эти два направления записей в одной строке, используя Unix сценариях оболочки.

Здесь формат файла:
Первая строка
ABC0001 F0000000000677249 677
второй линии.
ABC00029980000 00000 USA0001099

Я хотел бы, чтобы следующий выходной
ABC0001 F0000000000677249 677ABC00029980000 00000 USA0001099

Необходимо объединить две вышеупомянутые строки в одной записи.

Пожалуйста, помогите.

Спасибо
ca_sr2274
Closed Thread

Закладки

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

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

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

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




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


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