![]() |
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
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. :-) |
|
||||
|
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"
|
|
||||
|
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 :-) |
|
||||
|
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 |
|
||||
|
Citazione:
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. |
|
||||
|
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.. |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|