如何使用awk,sed?
在两个特定单词之间打印文本Company.all.each do |c|
Apartment::Tenant.create(c.subdomain)
end
需要输出: -
$ ofed_info | awk '/MLNX_OFED_LINUX/{print}'
MLNX_OFED_LINUX-4.1-1.0.2.0 (OFED-4.1-1.0.2):
$
答案 0 :(得分:0)
关注awk
可能对您有所帮助。(考虑到您对awk
的输入将与仅显示的示例相同)
your_command | awk '{sub(/[^-]*/,"");sub(/ .*/,"");sub(/-/,"");print}'
解决方案第二: 现在使用sed
解决方案。
your_command | sed 's/\([^-]*\)-\([^ ]*\).*/\2/'
解决方案3: 使用awk
的{{1}}实用程序:
match
答案 1 :(得分:0)
您可以使用此sed
:
echo 'MLNX_OFED_LINUX-4.1-1.0.2.0 (OFED-4.1-1.0.2):' |
sed -E 's/^[^-]*-| .*//g'
4.1-1.0.2.0
这个sed
命令删除文本,直到从开始的第一个连字符开始,或者从空格开始到结尾的文本。
答案 2 :(得分:0)
试试这个:
ofed_info | sed -n 's/^MLNX_OFED_LINUX-\([^ ]\+\).*/\1/p'
sed
命令仅选择以关键字开头的行,并打印附加到其上的版本。