“Wymień nową linię za pomocą Bash SED Linux” Kod odpowiedzi

Wymień nową linię za pomocą Bash SED Linux

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

Wymień nową linię za pomocą Bash SED Linux

# 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

Wymień nową linię za pomocą Bash SED Linux

#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

Wymień nową linię za pomocą Bash SED Linux

$ echo 'foo
bar
baz

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

Odpowiedzi podobne do “Wymień nową linię za pomocą Bash SED Linux”

Pytania podobne do “Wymień nową linię za pomocą Bash SED Linux”

Więcej pokrewnych odpowiedzi na “Wymień nową linię za pomocą Bash SED Linux” w Shell/Bash

Przeglądaj popularne odpowiedzi na kod według języka

Przeglądaj inne języki kodu