Bash-Skript zum Entfernen von Zeilenumbrüchen?


9

Ich brauche ein Skript, das eine Datei eingibt und deren Inhalt mit entfernten Zeilenumbrüchen wiedergibt - sozusagen "wortumbrochen".

Ich habe es versucht:

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

aber es gibt einfach nichts zurück.

Antworten:


18

Versuchen Sie Folgendes:

echo $(cat $1)

1
Ich bin froh, dass ich Ihnen helfen konnte, einen von vielen Wegen zu finden, um dorthin zu gelangen, aber versuchen Sie beim nächsten Mal, ein bisschen mehr zu googeln. Das ist , was ich habe als ein zweites Ergebnis der Keywords Aufspringen mit bash, line, end, remove.
Gertvdijk

@gertvdijk Jahre sind vergangen, und diese Frage ist, was ich als erstes Ergebnis bekam, das jetzt mit ähnlichen Schlüsselwörtern auftaucht :)
Jorge Suárez de Lis

Nicht-Skript / cmdline Weg istecho `cat some_file.ext`
nmz787

7

Ich habe diese relevante Antwort im Stackoverflow gefunden:

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

Der schnellste Weg scheint die Verwendung von tr zu sein:

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

oder für Ihr Beispiel:

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

Um mehr über den trBefehl zu erfahren, tun Sie dies natürlich man tr.

Der Stackoverflow-Anser enthält Möglichkeiten, dies mit sed zu tun (wäre meine erste Wahl gewesen, aber sed ist sehr zeilenorientiert und es ist arkan, Zeilenumbrüche nicht als Feldbegrenzer zu interpretieren) und eine Möglichkeit, read und bash in Ihrer Nähe zu verwenden erster Ansatz.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.