Script bash pour supprimer les sauts de ligne?

9

J'ai besoin d'un script qui entre un fichier et renvoie son contenu avec les sauts de ligne supprimés - "word wrapped" pour ainsi dire.

J'ai essayé:

#!/bin/bash
find $HOME '$1' | while read line; do echo "${line}"; done

mais cela ne renvoie rien.

Southpointingchariot
la source

Réponses:

18

Essayez de faire ceci:

echo $(cat $1)
gertvdijk
la source
1
Je suis ravi de pouvoir vous aider à trouver un moyen unique de vous y rendre, mais essayez de googler un peu plus la prochaine fois. C'est ce que je suis arrivé en deuxième résultat apparaître en utilisant les mots - clés , , , . bashlineendremove
gertvdijk
@gertvdijk les années ont passé, et cette question est ce que j'ai obtenu comme premier résultat en utilisant des mots-clés similaires maintenant :)
Jorge Suárez de Lis
la manière non script / cmdline estecho `cat some_file.ext`
nmz787
7

J'ai trouvé cette réponse pertinente dans stackoverflow:

/programming/1251999/sed-how-can-i-replace-a-newline-n

Le moyen le plus rapide semble utiliser tr:

tr '\n' ' ' </your/file

ou pour votre exemple:

cat `find $HOME '$1"` | tr '\n' ' '

Pour en savoir plus sur la trcommande faire, bien sûr, man tr.

Le stackoverflow anser contient des moyens de le faire avec sed (cela aurait été mon premier choix, mais sed est très orienté vers les lignes et le fait de ne pas interpréter les sauts de ligne car les délimiteurs de champ sont obscurs) et une manière utilisant read et bash, proche de votre approche initiale.

roadmr
la source