Commande sed UNIX ne supprimant pas les espaces dans la sortie cat

J’ai un fichier comme ci-dessous.

Hi this is first line this is second line this is third line 

Attendu est:

 Hi this is first line this is second line this is third line 

Ce que j’ai utilisé est

 cat file.txt | sed 's/ //g' 

résultats,

 Hi this is first line this is second line this is third line 

Pour une commande sed portable, utilisez ceci:

 sed 's/^[[:blank:]]*//' file 

[[:blank:]] correspond à un espace ou à une tabulation.

EDIT: Pour supprimer tous les espaces en utilisant awk:

 awk '{$1=$1}1' OFS= file 

OU sed:

 sed 's/[[:blank:]]*//g' file 

sed dans votre exemple remplacera tous les espaces

 sed 's/^[ \t]*//' file.txt 
  cat file.txt | sed -e 's/^[ \t]*//' 

OU

  sed 's/^[ \t]*//' file.txt 

OU si vous souhaitez modifier file.txt et supprimer les espaces blancs au début de la ligne:

 sed -i 's/^[ \t]*//' file.txt 

essayez cette ligne

 sed -r 's/^\s*//' file 

pour supprimer tous les espaces (tabs): sed -r 's/\s//g' file

 kent$ echo "Hi this is first line this is second line this is third line"|sed -r 's/\s//g' Hithisisfirstline thisissecondline thisisthirdline 

Le moyen le plus efficace de supprimer tous les espaces de votre saisie n’est probablement pas d’utiliser sed , mais

 tr -d '[:blank:]' < file.txt 

C'est différent de ce que vous aviez demandé à l'origine (supprimer uniquement les espaces blancs).