提取赋值表达式的值
假设我有这个字符串:
a b c d e=x f g h i
What's the best* way to extract the value x
from e=x
using only Linux Commands (like sed
and <代码>awk)?
*“最佳”的定义取决于您。
Suppose I have this string:
a b c d e=x f g h i
What's the best* way to extract the value x
from e=x
using only Linux commands (like sed
and awk
)?
*The definition of "best" is up to you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
怎么样,仅使用 Bash:
使用的参数扩展已记录在案 这里。
另一个使用
sed
:再次使用
sed
:另一个使用
cut
:我个人最喜欢的是第一个:它只需要 Bash,而且确实如此不启动任何额外的进程。
编辑:
根据评论,这里是上面的表达式,经过修改以专门匹配
e
:How about this, using just Bash:
The used parameter expansions are documented here.
Another one using
sed
:Again with
sed
:Another one using
cut
:My personal favourite is the first one: it only needs Bash and it does not launch any additional processes.
EDIT:
As per the comments, here are the expressions above, modified to match
e
specifically:grep 可以吗?假设我正确理解你的问题:
其中
s='abcde=xfgh i'
Will
grep
do? Assuming I understand your question correctly:where
s='a b c d e=x f g h i'
这是使用
sed
和awk
的一行:过程是使用
sed
在=
处分成两行,然后使用 awk 同时循环遍历两行中的列Here is a one liner using
sed
andawk
:Process is to split into two lines at the
=
usingsed
, then loop through the columns in both lines simultaneously usingawk
使用 Bash >= 3.2 正则表达式:
Using Bash >= 3.2 regexes:
GAWK
gAWK
一个全 bash 解决方案,可以干净地处理所有这些变量(不确定其最终目标)
An all bash solution which can handle all those variables (not sure of the ultimate goal of this) cleanly
如果你的 Linux 系统有 Ruby
或替代品
If you Linux system have Ruby
or alternative
使用现代 Perl:
或
使用旧 Perl:
With a modern perl:
or
With old perl: