“Remplacez une nouvelle ligne à l'aide de SED Linux Bash” Réponses codées

Remplacez une nouvelle ligne à l'aide de 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

Remplacez une nouvelle ligne à l'aide de 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

Remplacez une nouvelle ligne à l'aide de 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

Remplacez une nouvelle ligne à l'aide de SED Linux Bash

$ echo 'foo
bar
baz

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

Réponses similaires à “Remplacez une nouvelle ligne à l'aide de SED Linux Bash”

Questions similaires à “Remplacez une nouvelle ligne à l'aide de SED Linux Bash”

Plus de réponses similaires à “Remplacez une nouvelle ligne à l'aide de SED Linux Bash” dans Shell/Bash

Parcourir les réponses de code populaires par langue

Parcourir d'autres langages de code