The UNIX and Linux Forums  

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



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

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Как вставлять и удалять любой строке после желание линия RahulJoshi Shell программирование и сценарии 4 10-20-2008 11:27 AM
Нужна Сценарий для вставки колонов в каждой строке файла canopus15 UNIX для чайников Вопросы И Ответы 4 08-05-2008 09:03 PM
вставить строку после конкретной линии namishtiwari Shell программирование и сценарии 8 05-21-2008 03:16 PM
Как добавить новую строку в файл данных с помощью сценария Сона UNIX для чайников Вопросы И Ответы 2 08-22-2006 02:17 AM
Вставить строку в качестве первой линии в очень огромный файл визг UNIX перспективных И опытных пользователей 3 03-09-2005 01:22 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 11-21-2008
appsguy616 appsguy616 is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2008
Сообщений: 27
AWK скрипта для сравнения и вставить в строку

Привет
Я хотел бы сравнить строки на 10-20 Твердая позиция по всем направлениям, начиная с 6. если они Dont матча ему следует принять копию строки, начинающиеся с 1, и вставить его в начале строки, начиная с 6. Как мне это? Пожалуйста, помогите

Например,

1 тест 1 765533 7643743
6 да 3 5363653 373833
7 323323 4343434435 545
8 4345435435 5454545 55
7 323323 4343434435 545
6 да 3 5373653 373833
7 323323 4343434435 545
8 4345435435 5454545 55
6 да 3 5373653 373833
7 323323 4343434435 545
8 4345435435 5454545 55
6 да 3 5383653 373833
7 323323 4343434435 545
8 4345435435 5454545 55

так что вывод должен быть

1 тест 1 765533 7643743

6 да 3 5363653 373833
7 323323 4343434435 545
8 4345435435 5454545 55
7 323323 4343434435 545
1 тест 1 765533 7643743
6 да 3 5373653 373833
7 323323 4343434435 545
8 4345435435 5454545 55
6 да 3 5373653 373833
7 323323 4343434435 545
8 4345435435 5454545 55
1 тест 1 765533 7643743
6 да 3 5383653 373833
7 323323 4343434435 545
8 4345435435 5454545 55
Old 11-22-2008
replytoshishir replytoshishir is offline
Зарегистрированный пользователь
  
 

Регистрация: May 2006
Место проведения: Бангалор
Сообщений: 23
Вы можете объяснить, пожалуйста, немного .., как то, что вы поиск и из которого, к которой линия н.у.к. .... Я думаю, что может помочь вам .......

thnx shishir
Old 11-22-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
наркоман
  
 

Регистрация: Январь 2007
Местоположение: Варна, България / Милан, Италия
Сообщения: 2926
Учитывая вашу выборку данных пластов, что $ 4 будет работать отлично.
Использовать nawk или /usr/xpg4/bin/awk на Solaris:


Код:
awk '/^1 / { s = $0 }
/^6 / && !t[$4]++ {
  c++ && $0 = s RS $0
  }1' infile

Old 11-23-2008
summer_cherry summer_cherry is offline Forum Advisor  
Зарегистрированный пользователь
  
 

Регистрация: Июнь 2007
Месторасположение: Пекин Китай
Сообщения: 1098
Perl:

Код:
open FH,"<d:/a.txt";
while(<FH>){
	if(m/^1.*/){
		$line=$_;
		print;
		next;
	}
	if(m/^6.*/){
		@t=split;
		if($temp eq ""){
			$temp=$t[3];
			print;
		}
		else{
			if(!($t[3] eq $temp)){
				print $line;
				print $_;
				$temp=$t[3];
			}	
			else{
				print;
			}		
		}
	}
	else{print;}
}

Old 11-23-2008
appsguy616 appsguy616 is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2008
Сообщений: 27
привет
Поле находится в фиксированном положении 10-20 не 4-м поле необязательно. Не могли бы вы помочь

Спасибо
Old 11-24-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
наркоман
  
 

Регистрация: Январь 2007
Местоположение: Варна, България / Милан, Италия
Сообщения: 2926
Но вы положили в красном позиции 9-15, А не 10-20!

С 9-15 она должна быть:


Код:
awk '/^1 / { s = $0 }
/^6 / && !t[substr($0,9,7)]++ {
  c++ && $0 = s RS $0
  }1' infile

Если вы действительно хотеть 10-20Вы должны изменить аргументы передаются substr.
Old 11-24-2008
appsguy616 appsguy616 is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2008
Сообщений: 27
Это работает, спасибо за внимание.
Closed Thread

Закладки

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

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

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

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




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