Commande pour supprimer des mots (resolu) [bash] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 04-03-2008 à 11:00:58
C'est plus facile avec awk.
awk '{ print $1}' test.txt |
Marsh Posté le 04-03-2008 à 11:06:19
Merci ça fait des heures que je reste bloquer sur ce truc débile
Marsh Posté le 04-03-2008 à 14:27:27
une espace ou une tabulation (une fois), puis n'importe quoi (un nombre quelconque de fois) :
[\t ].*
on notera le " " dans les crochets (qui ne contiennent pas que \t donc)
un espace blanc (une fois), c'est à dire une espace ou une tabulation ou un retour à la ligne, puis n'importe quoi (un nombre quelconque de fois) :
\s.*
si le "n'importe quoi" sous-entend "n'importe quoi SAUF espace ou tabulation car ça, ça marque la fin du mot :
une espace ou une tabulation (une fois), suivi de n'importe quoi qui-n'est-ni-une-espace-ni-une-tabulation (un nombre quelconque de fois)
[\t ][^\t ]*
À noter : \w équivaut à [a-zA-Z0-9_]
À noter : on peut aussi faire
cat texte.txt | cut -d ' ' -f 1 |
pour découper chaque ligne au niveau des espaces et garder le premier champ.
Mais awk sbien aussi hein
Marsh Posté le 04-03-2008 à 10:43:27
Bonjour j'ai un fichier texte.txt :
habilitas habiliter Ver:IPSim+SG+P2
habilitasse habiliter Ver:SImp+SG+P1
habilitassent habiliter Ver:SImp+PL+P3
habilitasses habiliter Ver:SImp+SG+P2
Je veut garder que la première colonne :
sed 's/\t*//g' test.txt > o.txt
ca marche pas a cause de mon *
En fait je cherche l'expression reguliere a metre dans la commande sed pour dire :
tout ce qui commence par une tabulatione "\t"
ou tout ce qui commence par un expace " "
merci
Message édité par shulsie le 04-03-2008 à 11:06:32