The UNIX and Linux Forums  


Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
ta bort rader från flera textfiler Vrms Shell-programmering och Skript 3 04-25-2008 12:01
ersätter nya rader i alla filer i en katalog som innehåller gamla linjer rooster005 Shell-programmering och Skript 1 03-25-2008 03:38
Ta bort första 5 rader och sista fem raderna i alla textfiler ragavendran31 Shell-programmering och Skript 10 02-21-2008 07:58
Ersätta text chrchcol Shell-programmering och Skript 3 07-25-2006 01:30
ersätta text ajaya Shell-programmering och Skript 2 04-12-2006 01:31

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 Tools Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 01-28-2008
Jonny2Vests Jonny2Vests is online now
Registered User
  
 

Join Date: Jan 2008
Inlägg: 13
Byta linjer i textfiler

Hej,

Jag har 2 uppsättningar textfiler. Jag måste ta ett fält från en viss rad i uppsättning 1 och lägg den på samma plats i uppsättning b. Linjen visas en gång per ärende, på olika platser, men är en uppsättning format och har en unik ordet "Antenn" i den och är alltid 81 tecken långt. Exempel från föregå med:

" 0,0000 0,0000 0,0000 ANTENNA: Delta H / E / N "
Exempel från uppsättning b
" 0,2160 0,0000 0,0000 ANTENNA: Delta H / E / N "

Den djärva bit är det område som jag försöker ändra och kommer att vara ett slumpmässigt flyta i båda uppsättningarna.

Jag har försökt göra det så här:

#! / bin / ksh

old_line \u003d "grep ANTENNA ./file1.txt"
new_line \u003d "grep ANTENNA ./file2.txt"

sed "s / $ (old_line) / $ (new_line) /" file1.txt> tmp2 # ersätter gamla linje med ny rad i filen 1 och produktion till tmp2

Men det fungerar inte, antagligen för att jag har snedstreck i mitt grep linjer som sed tolkar som något slags regexp. Hur kan jag komma undan dessa när de är inbäddade i en variabel? Får jag citera incorectly? Eller är det ett mycket bättre sätt?

Jon
  #2 (permalänk)  
Old 01-28-2008
raman1605 raman1605 is offline
Registered User
  
 

Join Date: Aug 2007
Inlägg: 41
använda escape-sekvens

sed "s \ / $ (old_line) \ / $ (new_line) \ /" f

använda escape-sekvens "\" och sedan försöka.
  #3 (permalänk)  
Old 01-28-2008
Jonny2Vests Jonny2Vests is online now
Registered User
  
 

Join Date: Jan 2008
Inlägg: 13
Detta resulterar i fel:

sed:-E uttryck # 1, röding 81: unknown option att "s"
  #4 (permalänk)  
Old 01-28-2008
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Join Date: februari 2005
Ort: Boston, MA
Inlägg: 5.131

Kod:
sed "s#${old_line}#${new_line}#" file1.txt

  #5 (permalänk)  
Old 01-28-2008
Jonny2Vests Jonny2Vests is online now
Registered User
  
 

Join Date: Jan 2008
Inlägg: 13
Mycket uppskattat.
  #6 (permalänk)  
Old 01-28-2008
KevinADC KevinADC is offline Forum Advisor  
Registered User
  
 

Join Date: Jan 2008
Inlägg: 731
Men om du har # i rader du får samma problem. Gör sed inte ha en quotemeta funktion / alternativ du kan använda för mer allmänna ändamål och inte behöver oroa sig för den särskilda avgränsare i sökandet yttrandefriheten?
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 11:44.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0