Jim*_*Jim 10 grep sed regular-expression
我正在做 grep 和 sed 并且我得到了我感兴趣的文件的 2 行。如何在以换行符结尾的单行中获取这些行?
现在我得到:
pattern1
pattern2
Run Code Online (Sandbox Code Playgroud)
我想得到 pattern1 pattern2 \n
{...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
我会把三个版本不同的方法放在一排
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)
printf %s\\n pattern1 pattern2 | tr '\n' ' '; echo
Run Code Online (Sandbox Code Playgroud)
还有更多。