相关疑难解决方法(0)

使用bash和提取数字解析字符串

我有主管的状态输出,看起来像这样.

frontend                         RUNNING    pid 16652, uptime 2:11:17
nginx                            RUNNING    pid 16651, uptime 2:11:17
redis                            RUNNING    pid 16607, uptime 2:11:32
Run Code Online (Sandbox Code Playgroud)

我需要提取nginx的PID.我已经通过grep -P命令完成了它,但是在远程机器上grep是在没有perl正则表达式支持的情况下构建的.

看起来sed或awk正是我需要的,但我不熟悉它们.

请提前帮助我找一个怎么做的方法.

regex unix bash parsing

14
推荐指数
4
解决办法
3万
查看次数

sed错误"无效范围结束"

我在Ubuntu 12.04上运行这个替换命令.

$ sed -e "s/([a-zA-Z0-9.-/\\ :]+)/\1/g"
Run Code Online (Sandbox Code Playgroud)

但是,会引发以下错误.

sed:-e expression#1,char 27:无效的范围结束

我记得同样的表达式适用于MacOSX.
你能描述命令失败的原因吗?

regex ubuntu sed substitution

9
推荐指数
1
解决办法
8542
查看次数

尝试打印匹配表达式时使用 sed 的无效引用 \1

在我开始之前,我已经看过这个问题,但似乎解决方案是他们没有转义正则表达式中的括号。我遇到了同样的错误,但我没有对正则表达式进行分组。我想要做的是在 lastlog 文件中找到所有名称/用户名并仅返回 UN。

我拥有的:

    s/^[a-z]+ |^[a-z]+[0-9]+/\1/p
Run Code Online (Sandbox Code Playgroud)

我已经看到许多解决方案展示了如何在 awk 中执行此操作,这对于将来参考非常有用,但我想使用 sed 来执行此操作。

编辑例如输入:

    dzhu             pts/15   n0000d174.cs.uts Wed Feb 17 08:31:22 -0600 2016
    krobbins                                   **Never logged in**
    js24                                       **Never logged in**
Run Code Online (Sandbox Code Playgroud)

backreference sed

0
推荐指数
1
解决办法
3894
查看次数

标签 统计

regex ×2

sed ×2

backreference ×1

bash ×1

parsing ×1

substitution ×1

ubuntu ×1

unix ×1