J'ai des lignes de données contenant une seule colonne et deux colonnes. Ce que je veux faire est de lignes d'extraction qui contiennent seulement 2 colonnes.Filtrage des lignes en fonction du nombre de colonnes avec AWK
0333 foo
bar
23243 qux
ne cédant que:
0333 foo
23243 qux
Notez qu'ils sont séparées par des tabulations, même pour les lignes avec une seule colonne vous avez onglet au début.
Quelle est la façon de le faire?
J'ai essayé mais échouent:
awk '$1!="";{print $1 "\t" $2}' myfile.txt
enter code here
Pourquoi ne pas 'awk 'NF == 2 {print} {} {} {} {} {} {}'' ?? NF == 2 suffit. –
@Mark, certaines implémentations de 'awk' s'imprimeront par défaut si vous ne spécifiez pas d'action par défaut. Mon code fonctionne aussi sur ceux-là. Vous bods sont gâtés avec votre awk GNU, certains d'entre nous doivent écrire du code portable :-) Je vais clarifier. – paxdiablo
@ pax, Une implémentation awk qui se comporte comme vous le décrivez serait assez cassée. Pour autant que je sache, awk date à v7, et le manuel décrit assez clairement son comportement: "par exemple, la longueur du programme> 72 imprime toutes les lignes d'entrée dont la longueur dépasse 72 caractères." –