[Risolto] Modifica valore colonna file in BASH
- cloudany
- Prode Principiante
- Messaggi: 121
- Iscrizione: domenica 28 febbraio 2010, 12:54
- Desktop: Unity
- Distribuzione: Ubuntu
[Risolto] Modifica valore colonna file in BASH
- vaeVictis
- Imperturbabile Insigne

- Messaggi: 4703
- Iscrizione: venerdì 27 luglio 2012, 17:58
- Desktop: Gnome
- Distribuzione: Ubuntu 20.04 64bit
Re: Modifica valore colonna file in BASH
Ma come ieri... spiegati meglio, sennò andiamo incontro a errori evitabili
Quindi... spiega un po' meglio al struttura di questo file e cosa precisamente devi fare.
(Anche i comandi che dai e gli errori che riporti sarebbe interessante vederli)
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
- cloudany
- Prode Principiante
- Messaggi: 121
- Iscrizione: domenica 28 febbraio 2010, 12:54
- Desktop: Unity
- Distribuzione: Ubuntu
Re: Modifica valore colonna file in BASH
Codice: Seleziona tutto
2427 NA19919 NA19908 NA19909 1 -9
2528 NA19920 NA19909 NA19910 1 -9 e così viaCodice: Seleziona tutto
2427 NA19919 NA19908 NA19909 1 ASW
2528 NA19920 NA19909 NA19910 1 ASW e così via- UbuNuovo
- Imperturbabile Insigne

- Messaggi: 4457
- Iscrizione: sabato 12 dicembre 2009, 20:58
- Desktop: Mate
- Distribuzione: Ubuntu Mate 22.04.1 LTS
- Sesso: Maschile
- Contatti:
Re: Modifica valore colonna file in BASH
Codice: Seleziona tutto
awk '{ if ($6 == "-9") $6="ASW"; print }' nome_file- cloudany
- Prode Principiante
- Messaggi: 121
- Iscrizione: domenica 28 febbraio 2010, 12:54
- Desktop: Unity
- Distribuzione: Ubuntu
Re: Modifica valore colonna file in BASH
Codice: Seleziona tutto
awk: program limit exceeded: maximum number of fields size=32767- vaeVictis
- Imperturbabile Insigne

- Messaggi: 4703
- Iscrizione: venerdì 27 luglio 2012, 17:58
- Desktop: Gnome
- Distribuzione: Ubuntu 20.04 64bit
Re: Modifica valore colonna file in BASH
Se il problema è analogo a quello di ieri, ha un numero di campi che manda in cappella awk.UbuNuovo [url=http://forum.ubuntu-it.org/viewtopic.php?p=4603077#p4603077][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:provaCodice: Seleziona tutto
awk '{ if ($6 == "-9") $6="ASW"; print }' nome_file
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
- UbuNuovo
- Imperturbabile Insigne

- Messaggi: 4457
- Iscrizione: sabato 12 dicembre 2009, 20:58
- Desktop: Mate
- Distribuzione: Ubuntu Mate 22.04.1 LTS
- Sesso: Maschile
- Contatti:
Re: Modifica valore colonna file in BASH
Già devi mantenere tutti i campi.
Vae te che sei un esperto di sed...
- cloudany
- Prode Principiante
- Messaggi: 121
- Iscrizione: domenica 28 febbraio 2010, 12:54
- Desktop: Unity
- Distribuzione: Ubuntu
Re: Modifica valore colonna file in BASH
Infatti devo solo modificare il 6 campo per tutte le righe mantenendo le altre colonne e righeUbuNuovo [url=http://forum.ubuntu-it.org/viewtopic.php?p=4603081#p4603081][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Qundi devi usare cut...
Già devi mantenere tutti i campi.
Vae te che sei un esperto di sed...
- UbuNuovo
- Imperturbabile Insigne

- Messaggi: 4457
- Iscrizione: sabato 12 dicembre 2009, 20:58
- Desktop: Mate
- Distribuzione: Ubuntu Mate 22.04.1 LTS
- Sesso: Maschile
- Contatti:
Re: Modifica valore colonna file in BASH
Provo a pensarci un po.
VaeVictis come faresti?
- vaeVictis
- Imperturbabile Insigne

- Messaggi: 4703
- Iscrizione: venerdì 27 luglio 2012, 17:58
- Desktop: Gnome
- Distribuzione: Ubuntu 20.04 64bit
Re: Modifica valore colonna file in BASH
Codice: Seleziona tutto
vaevictis@vaevictis-HAL:~$ echo "1234 1234 1234 1234 lkhjg SESTOCAMPO" | sed 's/^\([^\s]* [^\s]* [^\s]* [^\s]* [^\s]*\) \([^\s]*\)/\1 BUMBUM-STALLMAN/'
1234 1234 1234 1234 lkhjg BUMBUM-STALLMAN
E non so neanche se funziona (l'ho fatto al volo, ma devo rimettermi a piangere)
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
- cloudany
- Prode Principiante
- Messaggi: 121
- Iscrizione: domenica 28 febbraio 2010, 12:54
- Desktop: Unity
- Distribuzione: Ubuntu
Re: Modifica valore colonna file in BASH
Codice: Seleziona tutto
cat hapmap3_r2_b36_fwd.ASW.qc.poly.ped | cut -c1-100 | awk '{ if ($6 == "-9") $6="ASW"; print }' > test.txt- vaeVictis
- Imperturbabile Insigne

- Messaggi: 4703
- Iscrizione: venerdì 27 luglio 2012, 17:58
- Desktop: Gnome
- Distribuzione: Ubuntu 20.04 64bit
Re: Modifica valore colonna file in BASH
Codice: Seleziona tutto
vaevictis@vaevictis-HAL:~$ echo "1234 1234 1234 1234 lkhjg SESTOCAMPO" | sed -r 's/^(([^\s]* ){5})([^\s]*)/\1 -BUMBUM-STALLMAN- /'
1234 1234 1234 1234 lkhjg -BUMBUM-STALLMAN- «I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
- UbuNuovo
- Imperturbabile Insigne

- Messaggi: 4457
- Iscrizione: sabato 12 dicembre 2009, 20:58
- Desktop: Mate
- Distribuzione: Ubuntu Mate 22.04.1 LTS
- Sesso: Maschile
- Contatti:
Re: Modifica valore colonna file in BASH
Codice: Seleziona tutto
8-) echo "1234 1234 1234 1234 lkhjg SESTOCAMPO settimo ottavo" | sed 's/^\([^\s]* [^\s]* [^\s]* [^\s]* [^\s]*\) \([^\s]*\)/\1 BUMBUM-STALLMAN/'
1234 1234 1234 1234 lkhjg SESTOCAMPO BUMBUM-STALLMANsettimo ottavo- cloudany
- Prode Principiante
- Messaggi: 121
- Iscrizione: domenica 28 febbraio 2010, 12:54
- Desktop: Unity
- Distribuzione: Ubuntu
Re: Modifica valore colonna file in BASH
Andrebbe bene ma mi restituisce sul terminale se apro il file sempre -9 mi ritrovovaeVictis [url=http://forum.ubuntu-it.org/viewtopic.php?p=4603104#p4603104][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Anzi no, il tempo ce l'ho
Codice: Seleziona tutto
vaevictis@vaevictis-HAL:~$ echo "1234 1234 1234 1234 lkhjg SESTOCAMPO" | sed -r 's/^(([^\s]* ){5})([^\s]*)/\1 -BUMBUM-STALLMAN- /' 1234 1234 1234 1234 lkhjg -BUMBUM-STALLMAN-
- vaeVictis
- Imperturbabile Insigne

- Messaggi: 4703
- Iscrizione: venerdì 27 luglio 2012, 17:58
- Desktop: Gnome
- Distribuzione: Ubuntu 20.04 64bit
Re: Modifica valore colonna file in BASH
Aspetta un attimo che devo prendere un po' di tempo per fare alcune prove (escape vari e cassi e massi)
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
- UbuNuovo
- Imperturbabile Insigne

- Messaggi: 4457
- Iscrizione: sabato 12 dicembre 2009, 20:58
- Desktop: Mate
- Distribuzione: Ubuntu Mate 22.04.1 LTS
- Sesso: Maschile
- Contatti:
Re: Modifica valore colonna file in BASH
Fai una prova su una copia del file ma usa sed con l'opzione "-i"cloudany [url=http://forum.ubuntu-it.org/viewtopic.php?p=4603109#p4603109][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Andrebbe bene ma mi restituisce sul terminale se apro il file sempre -9 mi ritrovovaeVictis [url=http://forum.ubuntu-it.org/viewtopic.php?p=4603104#p4603104][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Anzi no, il tempo ce l'ho
Codice: Seleziona tutto
vaevictis@vaevictis-HAL:~$ echo "1234 1234 1234 1234 lkhjg SESTOCAMPO" | sed -r 's/^(([^\s]* ){5})([^\s]*)/\1 -BUMBUM-STALLMAN- /' 1234 1234 1234 1234 lkhjg -BUMBUM-STALLMAN-
- cloudany
- Prode Principiante
- Messaggi: 121
- Iscrizione: domenica 28 febbraio 2010, 12:54
- Desktop: Unity
- Distribuzione: Ubuntu
Re: Modifica valore colonna file in BASH
NullaUbuNuovo [url=http://forum.ubuntu-it.org/viewtopic.php?p=4603116#p4603116][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Fai una prova su una copia del file ma usa sed con l'opzione "-i"cloudany [url=http://forum.ubuntu-it.org/viewtopic.php?p=4603109#p4603109][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Andrebbe bene ma mi restituisce sul terminale se apro il file sempre -9 mi ritrovovaeVictis [url=http://forum.ubuntu-it.org/viewtopic.php?p=4603104#p4603104][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Anzi no, il tempo ce l'ho
Codice: Seleziona tutto
vaevictis@vaevictis-HAL:~$ echo "1234 1234 1234 1234 lkhjg SESTOCAMPO" | sed -r 's/^(([^\s]* ){5})([^\s]*)/\1 -BUMBUM-STALLMAN- /' 1234 1234 1234 1234 lkhjg -BUMBUM-STALLMAN-
Codice: Seleziona tutto
sed: -e expression #1, char 34: invalid reference \1 on `s' command's RHS- UbuNuovo
- Imperturbabile Insigne

- Messaggi: 4457
- Iscrizione: sabato 12 dicembre 2009, 20:58
- Desktop: Mate
- Distribuzione: Ubuntu Mate 22.04.1 LTS
- Sesso: Maschile
- Contatti:
Re: Modifica valore colonna file in BASH
Codice: Seleziona tutto
sed -ir 's/^(([^\s]* ){5})([^\s]*)/\1 -BUMBUM-STALLMAN- /' copia_nome_file- vaeVictis
- Imperturbabile Insigne

- Messaggi: 4703
- Iscrizione: venerdì 27 luglio 2012, 17:58
- Desktop: Gnome
- Distribuzione: Ubuntu 20.04 64bit
Re: Modifica valore colonna file in BASH
Allora, per sostituire il -9 con "-BUMBUM-STALLMAN-"
Codice: Seleziona tutto
vaevictis@vaevictis-HAL:~$ echo "1234 1234 1234 1234 lkhjg -9 lkjdglkjdfglkj" | sed -r 's/^(([^ \t]* ){5})-9 (.*)$/\1-BUMBUM-STALLMAN- \2/'
1234 1234 1234 1234 lkhjg -BUMBUM-STALLMAN- lkhjg Codice: Seleziona tutto
vaevictis@vaevictis-HAL:~$ toremove=-9
vaevictis@vaevictis-HAL:~$ toinsert=-BUMBUM-STALLMAN
vaevictis@vaevictis-HAL:~$ echo "1234 1234 1234 1234 lkhjg -9 lkjdglkjdfglkj" | sed -r 's/^(([^ \t]* ){5})'"$toremove"' (.*)$/\1'"$toinsert"' \2/'
1234 1234 1234 1234 lkhjg -BUMBUM-STALLMAN lkhjg 1) setta gli opportuni valori per le due variabili (come qui sopra) e poi dai
Codice: Seleziona tutto
sed -r 's/^(([^ \t]* ){5})'"$toremove"' (.*)$/\1'"$toinsert"' \2/'«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti