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