Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

awk

4 réponses
Avatar
qpj
bonjour,
j'ai un tableau :
a b c d
1 0 1 7
0 2 0 8
0 3 0 9
1 0 0 2
comment supprimer les lignes si a=0 et c=0
merci

4 réponses

Avatar
Thierry Boudet
In article , qpj wrote:
j'ai un tableau :
a b c d
1 0 1 7
0 2 0 8
0 3 0 9
1 0 0 2
comment supprimer les lignes si a=0 et c=0


:~$ awk ' $1!=0 || $2!=0 { print; }' < toto
1 0 1 7
0 2 0 8
0 3 0 9
1 0 0 2
:~$

si la ligne 'a b c d' est dans le fichier rajouter
un test sur NR

:~$ awk 'NR!=1 && ($1!=0 || $2!=0) { print; }' < toto


--
THEOREM: VI is perfect.
PROOF: VI in roman numerals is 6. The natural numbers < 6 which divide 6 are
1, 2, and 3. 1+2+3 = 6. So 6 is a perfect number. Therefore, VI is perfect.
QED -- Arthur Tateishi

Avatar
David LE BOURGEOIS
qpj wrote:
bonjour,
j'ai un tableau :
a b c d
1 0 1 7
0 2 0 8
0 3 0 9
1 0 0 2
comment supprimer les lignes si a=0 et c=0
merci


Avec sed peut-être ?

$ sed 's/0 . 0 .//' | grep -v "^$"

Avatar
Christian CAMIER
Thierry Boudet wrote:

In article , qpj wrote:

j'ai un tableau :
a b c d
1 0 1 7
0 2 0 8
0 3 0 9
1 0 0 2
comment supprimer les lignes si a=0 et c=0
========== >


:~$ awk ' $1!=0 || $2!=0 { print; }' < toto
Ici je comprends SI A != OU B !0 ... Utiliser $3 pour que cela marche

De plus, awk est parfaitement capable de lire un fichier un fichier
donné en argument.
--> awk ' $1!=0 || $3!=0 { print; }' toto

:~$ awk 'NR!=1 && ($1!=0 || $2!=0) { print; }' < toto
--> awk ' NR != 1 && ($1!=0 || $3!=0) { print; }' toto



Avatar
Christian CAMIER
David LE BOURGEOIS wrote:

qpj wrote:

bonjour,
j'ai un tableau :
a b c d
1 0 1 7
0 2 0 8
0 3 0 9
1 0 0 2
comment supprimer les lignes si a=0 et c=0
merci



Avec sed peut-être ?

$ sed 's/0 . 0 .//' | grep -v "^$"
Pourquoi utiliser deux porcessus alors que

$ sed '/0 . 0 ./d'
donne le même résultat
CC