“Ersetzen Sie eine neue Linie durch SED Linux Bash” Code-Antworten

Ersetzen Sie eine neue Linie durch SED Linux Bash

sed ':a;N;$!ba;s/\n/ /g' file

:a create a label 'a'
N append the next line to the pattern space
$! if not the last line, ba branch (go to) label 'a'
s substitute, /\n/ regex for new line, / / by a space, /g global match (as many times as it can)
DreamCoder

Ersetzen Sie eine neue Linie durch SED Linux Bash

# sed is intended to be used on line-based input. Although it can do what you need.
#A better option here is to use the tr command as follows:
tr '\n' ' ' < input_filename

#or remove the newline characters entirely:
tr -d '\n' < input.txt > output.txt

#or if you have the GNU version (with its long options)
tr --delete '\n' < input.txt > output.txt
DreamCoder

Ersetzen Sie eine neue Linie durch SED Linux Bash

#All alternatives, unlike sed will not need to reach the last line to begin the process

#with bash, slow
while read line; do printf "%s" "$line "; done < file

#with perl, sed-like speed
perl -p -e 's/\n/ /' file

#with tr, faster than sed, can replace by one character only
tr '\n' ' ' < file

#with paste, tr-like speed, can replace by one character only
paste -s -d ' ' file

#with awk, tr-like speed
awk 1 ORS=' ' file

#Other alternative like "echo $(< file)" is slow, works only on small files and needs to process the whole file to begin the process.
DreamCoder

Ersetzen Sie eine neue Linie durch SED Linux Bash

$ echo 'foo
bar
baz

foo2
bar2
baz2' \
| tr '\n' '\000' \
| sed 's:\x00\x00.*:\n:g' \
| tr '\000' '\n'
DreamCoder

Ähnliche Antworten wie “Ersetzen Sie eine neue Linie durch SED Linux Bash”

Fragen ähnlich wie “Ersetzen Sie eine neue Linie durch SED Linux Bash”

Weitere verwandte Antworten zu “Ersetzen Sie eine neue Linie durch SED Linux Bash” auf Shell/Bash

Durchsuchen Sie beliebte Code-Antworten nach Sprache

Durchsuchen Sie andere Codesprachen