我正在运行命令:
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
所以明确地说,我想:
- 去掉\n个字符
- 删除所有多余的空格
- 删除 header 。
- 不必保存到文件,只需运行一条命令即可一次性完成所有操作。
有没有办法做到这一点?我一直在谷歌搜索 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
使用“tr”替换换行符。越来越近。现在我的命令/输出看起来像这样:
testbox:~# apk version openssh | sed 's/Installed://g'| sed 's/Available://g' | tr '\n' ' '
openssh-6.8_p1-r5 < 6.8_p1-r6 testbox:~#
最佳答案
管道输出到
... | sed 1d | tr -s ' '
openssh-6.8_p1-r5 < 6.8_p1-r6
sed 1d
删除标题行
tr -s
将字符(在本例中为空格)压缩到一个实例。
关于linux - 如何从apk版本命令返回的结果中去掉\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36365069/