Comment faire pour supprimer attaque et de fuite des espaces?

Je suis en utilisant awk '{gsub(/^[ \t]+|[ \t]+$/,""); print;}' in.txt > out.txt pour enlever les deux attaque et de fuite des espaces.

Le problème est le fichier de sortie a effectivement la fuite des espaces! Toutes les lignes sont de la même longueur qu'ils sont complétées par des espaces.

Ce qui me manque?

Mise à JOUR de 1

Le problème est probablement en raison du fait que les espaces sont ni "normal" espaces), mais \x20 caractères (DC4).

Mise à JOUR 2

J'ai utilisé gsub (/'[[:cntrl:]]|[[:space:]]|\x20/,"") un il a travaillé.
Deux choses étranges:

  1. Pourquoi n'est-ce pas \x20 considéré comme un caractère de contrôle?
  2. À l'aide de '[[:cntrl:][:space:]\x20 ne fonctionne PAS. Pourquoi?
Mise à JOUR: peut-être qu'elles ne sont pas de simples espaces, mais DC4 caractères de contrôle? Les fichiers d'origine de Windows.
\x20 est un habitué de l'espace ASCII. Les caractères de contrôle sont \x00 par \x1F.

OriginalL'auteur user1194552 | 2012-02-07