# replace each newline with a spaceprintf "a\nb\nc\nd\ne\nf" | sed -E -e :a -e '$!N; s/\n/ /g; ta'printf "a\nb\nc\nd\ne\nf" | sed -E -e :a -e '$!N; s/\n/ /g' -e ta
sed 's/\n//' file # to delete newlines from each linesed 's/\n/foo\n/' file # to add a word to the end of each line
永远不会工作,因为尾随的换行符被删除之前 该行被放入模式空间。要执行上述任务, 使用以下脚本之一:
tr -d '\n' < file # use tr to delete newlinessed ':a;N;$!ba;s/\n//g' file # GNU sed to delete newlinessed 's/$/ foo/' file # add "foo" to end of each line
x - which is used to exchange the data from both space (pattern and hold).G - which is used to append the data from hold space to pattern space.h - which is used to copy the pattern space to hold space.1!h - During first line won't copy pattern space to hold space due to \n isavailable in pattern space.$!d - Clear the pattern space every time before getting the next line until thethe last line.