The UNIX and Linux Forums  
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Perl: Cerca stringa di ricerca on-line e quindi sostituire il testo Crypto Shell scripting e di programmazione 4 01-04-2008 10:24 AM
Necessità di sostituire tutte le occorrenze di una stringa di ricerca utilizzando sed mjs3221 Shell scripting e di programmazione 2 12-07-2006 02:09 AM
Cerca & Sostituisci stringa IwishIknewC UNIX for Dummies Domande & Risposte 1 03-25-2006 06:28 AM
E sostituire la stringa di ricerca tra i 2 punti whited05 Shell scripting e di programmazione 3 10-11-2005 02:05 PM
sostituire la stringa di ricerca Krishna UNIX e avanzata per utenti esperti 1 12-19-2001 01:49 PM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 04-10-2008
gstuart gstuart is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2008
Interventi: 16
Ricerca, sostituire stringa in file1 con stringa a partire da (tabella di ricerca) file2?

Ciao: Ho un'altra domanda. Vi preghiamo di considerare i seguenti due campione, file delimitato da tabulazioni:

File_1:

Abf1 YKL112w
Abf1 YAL054c
Abf1 YGL234w
Ace2 YKL150w
Ace2 YNL328c
Cup9 YDR441c
Cup9 YDR442w
Cup9 YEL040w
...


Fascicolo 2:

...
ABF1 YKL112W
ACE2 YLR131C
CUP9 YPL177C
...

File_2 è una "tabella di ricerca"; voglio sostituire $ 1 in File_1 con i corrispondenti $ 2 in campo File_2, inoltre l'aggiunta di una colonna centrale contenente la stringa "TF", e una colonna di "quelli" ( "1" nella prima colonna posizione), tutti i delimitato da tabulazioni.

Inoltre, sarebbe l'ideale se il caso può essere ignorato per la ricerca / sostituzione, ma che la produzione è in ordine alfabetico tutte le lettere maiuscole [AZ] convertiti [AZ].

Cordiali saluti, questi geni sono lievito; oltre a numeri e lettere, alcuni dei geni che contengono trattini (ad esempio, YBR162W-A), ma non contiene una virgola, virgole, spazi, ecc

Uscita File_3:

1 YKL112W tf YKL112W
1 YKL112W tf YAL054C
1 YKL112W tf YGL234W
1 YLR131C tf YKL150W
1 YLR131C tf YNL328C
1 YLR131C tf YLR439W
1 YPL177C tf YDR441C
1 YPL177C tf YDR442W
1 YPL177C tf YEL040W
...

Ciò è dovuto a (ma diversa da) mia precedente interrogazione,

Biologo molecolare richiede aiuto Re: ricerca / sostituzione di script

Qui, la prima colonna è un "manichino" peso valore, al fine di mantenere "campo di compatibilità" con il mio precedente file, come mostrato in questo esempio:

1 bis gi b
Pp 1 a uno
1 bis pp c
1 t gi u
1 t w gi
Gi x 1 t
1 pp t z
2 pp uno d
2 bis e pp
2 t gi v
2 t z gi
3 bis pp b
3 t gi y
...

In definitiva, vorrei finire con un file di questo tipo, con $ 1 \u003d peso, gene1 \u003d $ 2, $ 3 \u003d associazione, $ 4 \u003d gene2:


1 YKL112W tf YKL112W
1 YKL112W tf YAL054C
1 YKL112W tf YGL234W
1 YLR131C tf YKL150W
1 YLR131C tf YNL328C
1 YLR131C tf YLR439W
1 YPL177C tf YDR441C
1 YPL177C tf YDR442W
1 YPL177C tf YEL040W
...
1 YBL012C gi YCL045C
1 YBL012C pp YBL012C
5 YBL012C pp YHR039C-A
1-A YLR363W gi YNL143C
4-A YLR363W gi YPR123C
1-A YLR363W gi YLR467W
1-A YLR363W pp YNR073C
2 YBL012C pp YGL232W
2 YBL012C pp YOR102W
2-A YLR363W gi YFL066C
2-A YLR363W gi YNR073C
3 YBL012C pp YCL045C
3-A YLR363W gi YKL100C
...

Grazie - Ancora una volta, * molto * molto apprezzato!

Cordiali saluti, Greg S. :-)
  #2 (permalink)  
Old 04-11-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderatore
  
 

Iscriviti Data: febbraio 2007
Messaggi: 4.294
Citazione:
Originalmente inviato da gstuart View Post
Ciao: Ho un'altra domanda. Vi preghiamo di considerare i seguenti due campione, file delimitato da tabulazioni:

File_1:

Abf1 YKL112w
Abf1 YAL054c
Abf1 YGL234w
Ace2 YKL150w
Ace2 YNL328c
Cup9 YDR441c
Cup9 YDR442w
Cup9 YEL040w
...


Fascicolo 2:

...
ABF1 YKL112W
ACE2 YLR131C
CUP9 YPL177C
...

File_2 è una "tabella di ricerca"; voglio sostituire $ 1 in File_1 con i corrispondenti $ 2 in campo File_2, inoltre l'aggiunta di una colonna centrale contenente la stringa "TF", e una colonna di "quelli" ( "1" nella prima colonna posizione), tutti i delimitato da tabulazioni.

Inoltre, sarebbe l'ideale se il caso può essere ignorato per la ricerca / sostituzione, ma che la produzione è in ordine alfabetico tutte le lettere maiuscole [AZ] convertiti [AZ].

Cordiali saluti, questi geni sono lievito; oltre a numeri e lettere, alcuni dei geni che contengono trattini (ad esempio, YBR162W-A), ma non contiene una virgola, virgole, spazi, ecc

Uscita File_3:

1 YKL112W tf YKL112W
1 YKL112W tf YAL054C
1 YKL112W tf YGL234W
1 YLR131C tf YKL150W
1 YLR131C tf YNL328C
1 YLR131C tf YLR439W
1 YPL177C tf YDR441C
1 YPL177C tf YDR442W
1 YPL177C tf YEL040W
...
Questo dovrebbe dare un output desiderato:

Codice:
 awk '
FNR==NR{a[tolower($1)]=$2;next} 
tolower($1) in a{print "1 " a[tolower($1)] " tf " toupper($2)}
' "File_2" "File_1"
Saluti
  #3 (permalink)  
Old 04-11-2008
gstuart gstuart is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2008
Interventi: 16
Questo è assolutamente meraviglioso! ... :-)

Qui è la mia comprensione della Franklin52 codice:

Manuali Unix - AWK Riferimento

# \u003d\u003d È "pari"

tolower (stringa): Ritorna la stringa con tutti i caratteri maiuscoli sostituiti con i loro equivalenti minuscole.

toupper (stringa): Ritorna la stringa con tutti i caratteri in minuscolo sostituiti con i loro equivalenti maiuscolo.

FNR: numero record di file di input.

NR: Numero di record trattati.

Pertanto, lo script qui sopra si traduce (? - Si prega di correggere, se mi sono sbagliato) come

awk '
NR FNR \u003d\u003d (a [tolower ($ 1)] \u003d $ 2;) accanto

mentre il numero di record (linea) è uguale al numero totale di record (è vero), non tutte le caratteristiche seguenti:
ottenere $ 1 (il nome del gene comune - convertito in minuscolo - richiesto dal campo corrispondente in File_1 è minuscolo, altrimenti non riuscirà a "partita" - linux è case-sensitive) nella ricerca di file (File_2), set (modifica ) al (già maiuscolo) sistematica gene nome ($ 2) nella stessa tabella di ricerca, quindi di leggere il prossimo numero di record (linea);

tolower ($ 1) (print in un "1" a [tolower ($ 1)] "TF" toupper ($ 2))

adesso, per ogni $ 1 nel File_2 (ora fissato al maiuscolo $ 2, della tabella di ricerca), per il secondo file (File_1, quello di essere convertiti), stampa
"1", $ 2 da File_2; "TF", $ 2 da File_1 (restituito come maiuscolo, per convertire il carattere minuscolo c, w,-a, ecc)

' "File_2" "File_1"

File_1 \u003d file che devono essere trattati (convertito)
File_2 \u003d "ricerca di file" ( "common_to_systematic.tab)

?!


Questo funziona brillantemente! Thank you so much, Franklin52!

Have a super weekend! ... Greg :-)
  #4 (permalink)  
Old 02-06-2009
RickR RickR is offline
Utente Registrato
  
 

Iscriviti Data: febbraio 2009
Interventi: 1
Rinominare più file da una tabella di ricerca

E 'possibile modificare lo script di cui sopra per rinominare i file sulla base di una tabella di ricerca?

ad esempio:
Nuova Corrente
A87324.jpg A1372365.jpg
A89732.jpg A98274.jpg
A130347.jpg A73689.jpg
...

Grazie,

Rick
  #5 (permalink)  
Old 06-07-2009
aenagy aenagy is offline
Utente Registrato
  
 

Iscriviti Data: giugno 2009
Interventi: 1
Citazione:
Codice:
 
awk 'FNR==NR{a[tolower($1)]=$2;next} tolower($1) in a{print "1 " a[tolower($1)] " tf " toupper($2)}' "File_2" "File_1"

Sto cercando di modificare il codice di cui sopra per una situazione analoga. Ho due file di input. Il primo file (Datastores) è un formato CSV con nomi nella prima colonna e UUID nella seconda colonna. Il secondo file (VM) è un elenco di file con il percorso completo utilizzando l'UUID. Ad esempio:

----- ----- Datastores.csv
nome 1, UUID1
nome 2, UUID2
nome 3, UUID3
etc
----- ----- Datastores.csv

----- ----- VMs.txt
/ folder/UUID3/vm1.vmx
/ folder/UUID2/vm2.vmx
/ folder/UUID1/vm3.vmx
/ folder/UUID3/vm4.vmx
etc
----- ----- VMs.txt

Io cerco di output è simile al seguente:

----- ----- Output.txt
/ cartella / nome 3/vm1.vmx
/ cartella / nome 2/vm2.vmx
/ cartella / nome 1/vm3.vmx
/ cartella / nome 3/vm4.vmx
etc
----- ----- Output.txt

Il campione di awk non è intuitivo anche per me dopo la lettura e l'altra spiegazione va oltre il riferimento O'Rielly tasca. Il caso di ingresso o non ha bisogno di essere cambiato - se c'è un problema con corrispondenti caso poi ho altri problemi da affrontare.

Grazie per il vostro aiuto in anticipo.
  #6 (permalink)  
Old 02-06-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderatore
  
 

Iscriviti Data: febbraio 2005
Località: Boston, MA
Messaggi: 5.119
Codice:
#!/bin/ksh

while read current new x
do
   mv "${current}" "${new}"
done < /path/to/lookupFile
  #7 (permalink)  
Old 05-23-2009
allrise123 allrise123 is offline
Utente Registrato
  
 

Iscriviti Data: maggio 2009
Interventi: 9
Hi guys!

Sono nuovo di script di shell .. Volevo sapere abt sed comando e come funziona?

ecco cosa voglio fare, voglio ricerca stringa originale in export.txt file che è il seguente:
esportazione mibs \u003d \ opt \ mymibs \

Vorrei sostituirla con la
esportazione mibs \u003d \ opt \ new_mibs \

Si prega di aiutare con

grazie in anticipo

Ultimo a cura di allrise123; al 05/23/2009 04:17 PM..
Reply

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 08:51 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0