我正在运行命令:
apk version openssh
输出包括\ n。它看起来像这样:
testbox:~# apk version openssh
Installed: Available:
openssh-6.8_p1-r5 < 6.8_p1-r6
testbox:~#
我需要一种方法来更改此输出,使其看起来像这样:
openssh-6.8_p1-r5 < 6.8_p1-r6
所以要明确,我想:
有办法做到这一点吗?我一直是谷歌grep的例子,我尝试用它试图摆脱\ n但是没有成功。
我仍在努力解决这个问题,但如果你有一些建议,我会很感激。
编辑1
我已经使用了sed,我已经明白了这一点:
testbox:~# apk version openssh | sed 's/Installed://g'| sed 's/Available://g' | sed 's/\n//g'
openssh-6.8_p1-r5 < 6.8_p1-r6
如您所见,我试图摆脱换行失败
修改2
使用&#34; tr&#34;替换换行符。越来越近。现在我的命令/输出如下所示:
testbox:~# apk version openssh | sed 's/Installed://g'| sed 's/Available://g' | tr '\n' ' '
openssh-6.8_p1-r5 < 6.8_p1-r6 testbox:~#
答案 0 :(得分:1)
将输出传递给
... | sed 1d | tr -s ' '
openssh-6.8_p1-r5 < 6.8_p1-r6
sed 1d
删除标题行
tr -s
将chars(在这种情况下为空格)压缩到一个实例。
答案 1 :(得分:0)
apk version openssh | sed&#39; s / Installed:// g&#39; | sed&#39; s /可用:// g&#39; | tr&#39; \ n&#39; &#39; &#39; | sed&#39; s / * // g&#39;
答案 2 :(得分:0)
您要求的one command to do this all at once
是:
apk version openssh | awk 'NR>1{$1=$1;print}'
NR>1
跳过第一个(标题)行$1=$1
将所有空白字符串更改为单个空格字符print
打印行