如何在一行中“合并”模式?

Jim*_*Jim 10 grep sed regular-expression

我正在做 grep 和 sed 并且我得到了我感兴趣的文件的 2 行。如何在以换行符结尾的单行中获取这些行?
现在我得到:

pattern1  
pattern2  
Run Code Online (Sandbox Code Playgroud)

我想得到 pattern1 pattern2 \n

gle*_*man 7

paste

{...pipeline...} | paste -d " " - -
Run Code Online (Sandbox Code Playgroud)

那就是:“从标准输入(第一个-)读取一行,从标准输入(第二个-)读取另一行,然后用空格将它们连接起来”


一种特定于 bash 的技术:

$ x=$(grep -o pattern. test.txt)
$ echo "$x"
pattern1
pattern2
$ mapfile -t <<< "$x"
$ echo "${MAPFILE[*]}"
pattern1 pattern2
Run Code Online (Sandbox Code Playgroud)

参考:http : //www.gnu.org/software/bash/manual/bashref.html#index-mapfile


Val*_*ami 6

我会把三个版本不同的方法放在一排

AWK

printf %s\\n pattern1 pattern2 | awk -vRS="\n" -vORS=" " '1; END {print RS}'
Run Code Online (Sandbox Code Playgroud)

社会经济发展部

printf %s\\n pattern1 pattern2 | sed '$!N;s/\n/ /'
Run Code Online (Sandbox Code Playgroud)

TR

printf %s\\n pattern1 pattern2 | tr '\n' ' '; echo
Run Code Online (Sandbox Code Playgroud)

还有更多。