da4*_*da4 2 bash awk sed macos
如果我有:
foo
bar
Run Code Online (Sandbox Code Playgroud)
..我想awk/sed这个:
foo-bar
Run Code Online (Sandbox Code Playgroud)
..什么是语法?
我正在尝试在 OS X 10.6.x 上使用 System Profiler:
system_profiler SPMemoryDataType | awk '/Type/ {print $2} /Speed/ {print $2}'
Run Code Online (Sandbox Code Playgroud)
输出类型速度(即DDR-1067)。还没有想出如何使用print或printf尚未弄清楚如何做到这一点,可能会尝试grep改为..
tr:tr '\n' '-'
Run Code Online (Sandbox Code Playgroud)
这样就够了吗?这将用逗号替换每个换行符。
sed:一个更漂亮的解决方案使用sed:
sed -e N -e 's/\n/-/'
Run Code Online (Sandbox Code Playgroud)
在N根据手册页追加换行到模式空间:
[2addr]N将输入的下一行附加到模式空间,使用嵌入的换行符将附加材料与原始内容分开。请注意,当前行号会发生变化。
bash实际上,bash 可以做tr可以做的事情。只是为了完整性:
while read l; do echo -n "$l-"; done
Run Code Online (Sandbox Code Playgroud)
这是关于堆栈溢出的类似问题:SED:如何替换换行符 (\n)?