81 votes

couper les n et n dernières colonnes

comment puis-je couper les n et les n dernières colonnes d'un fichier délimité par des tabulations?

J'ai essayé de couper la première colonne n. Mais je n'ai aucune idée de combiner la première et la dernière colonne n

cut -f 1-10 -d "<CTR>v <TAB>" filename

Merci

126voto

kauppi Points 6529

La coupe peut prendre plusieurs plages en -f:

Colonnes jusqu'à 4 et à partir de 7:

coupe -f -4,7-

ou pour les champs 1, 2, 5, 6 et à partir de 10:

coupe -f 1,2,5,6,10-

etc

1voto

Dennis Williamson Points 105818

Pour utiliser AWK pour couper le premier et le dernier champs:

awk '{$1 = ""; $NF = ""; print}' inputfile

Malheureusement, cela laisse le champ séparateurs, de sorte

aaa bbb ccc

devient

[space]bbb[space]

Pour ce faire, à l'aide de kurumi réponse qui ne laissent pas d'espace supplémentaire, mais d'une manière spécifique à vos besoins:

awk '{delim = ""; for (i=2;i<=NF-1;i++) {printf delim "%s", $i; delim = OFS}; printf "\n"}' inputfile

Cela corrige aussi quelques problèmes dans cette réponse.

Pour généraliser que:

awk -v skipstart=1 -v skipend=1 '{delim = ""; for (i=skipstart+1;i<=NF-skipend;i++) {printf delim "%s", $i; delim = OFS}; printf "\n"}' inputfile

Ensuite, vous pouvez modifier le nombre de champs pour sauter au début ou à la fin en changeant les affectations de variables au début de la commande.

-1voto

kurumi Points 10096

vous pouvez utiliser awk, par exemple, couper les 1ère, 2ème et 3 dernières colonnes

 awk '{for(i=3;i<=NF-3;i++} print $i}' file
 

si vous avez un langage de programmation tel que Ruby (1.9+)

 $ ruby -F"\t" -ane 'print $F[2..-3].join("\t")' file
 

-1voto

user2009292 Points 1

Essayez ce qui suit:

 echo a#b#c | awk -F"#" '{$1 = ""; $NF = ""; print}' OFS=""
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X