AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-21471

kenorb's questions

Martin Hope
kenorb
Asked: 2018-04-13 15:07:43 +0800 CST

\K的对面,保持正确的东西[重复]

  • 11
这个问题在这里已经有了答案:
grep 只能输出匹配的指定分组吗? (8 个回答)
4年前关闭。

在perlre的扩展模式页面上,我们可以阅读\K:

保留剩下的东西\K,不要包含在 $&

这是使用 GNU 的实际示例grep(实际上保留了 GNU 的内容\K):

$ echo "foo bar buzz" | grep -Po "foo \Kbar buzz"
bar buzz

有没有相反的顺序\K?

例如仅打印bar,例如:

$ echo "foo bar buzz" | grep -Po "foo \Kbar\X buzz"
bar
grep regular-expression
  • 1 个回答
  • 8017 Views
Martin Hope
kenorb
Asked: 2018-03-03 03:12:12 +0800 CST

如何在第 5 列中找到具有不同值且共享相同第 2 列的行?

  • 1

我有以下内容file.log:

2018.03.02 R:123-123 [Debug] Parameters AAA ...
2018.03.02 R:123-124 [Debug] Parameters BBB ...
2018.03.02 R:123-125 [Debug] Parameters CCC ...
2018.03.02 R:123-126 [Debug] Parameters DDD ...
2018.03.02 R:123-126 [Debug] Parameters EEE ...
2018.03.02 R:123-456 [Debug] Parameters XXX ...
2018.03.02 R:123-456 [Debug] Parameters YYY ...
2018.03.02 R:456-456 [Debug] Parameters ZZZ ...
2018.03.02 R:123-123 [Debug] Parameters XYZ ...

我主要对阅读$2和$5专栏感兴趣。

我想从第 5 列中找到与第 2 列中相同值不同的所有值。

这是我所拥有的:

$ awk '{print $5" "$2}' file.log | uniq -s3 -c | sort -nr | grep -vw 1
      2 XXX R:123-456
      2 DDD R:123-126

但我正在寻找使用更少管道的更有效方式,理想情况下使用Bash和Awk作为脚本或从命令行。

输出可以是相似的,也可以打印整行。上述输出的问题是,它没有显示给定第二列的所有出现。最后一行也没有考虑到(XYZ)。

我还可以在Bash中编写以下内容:

$ grep -f <(awk '{print $5" "$2}' file.log | uniq -s3 -c | sort -nr | grep -vw 1 | awk '{print $3}') file.log
2018.03.02 R:123-126 [Debug] Parameters DDD ...
2018.03.02 R:123-126 [Debug] Parameters EEE ...
2018.03.02 R:123-456 [Debug] Parameters XXX ...
2018.03.02 R:123-456 [Debug] Parameters YYY ...

但是该命令不会打印带有 的行R:123-123,其次它对于较大的文件效率不高。

有效的预期结果是:

  • 带有 , 的行R:123-123,因为它们有两个不同的参数:AAA, XYZ.
  • 带有 , 的行R:123-126,因为它们有两个不同的参数:DDD, EEE.
  • 带有 , 的行R:123-456,因为它们有两个不同的参数:XXX, YYY.

如何更有效地实现这一目标?

bash shell-script
  • 1 个回答
  • 560 Views
Martin Hope
kenorb
Asked: 2018-03-02 14:42:22 +0800 CST

如何将动态 shell 参数转换为 URI 查询?

  • 2

我有以下 shell 脚本:

#!/usr/bin/env bash
PARAMS=( arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 )
[ $# -lt ${#PARAMS[@]} ] && { echo "Usage: $0 ${PARAMS[@]}"; exit 1; }
DATA=$(printf "%s=%s&" ${PARAMS[@]} $@)
echo curl "http://example.com/api/?${DATA%?}"

它旨在获取n个参数并将它们与从参数中读取的值相关联。

所以当我运行时:

./curl_params.sh 1 2 3 4 5 6 7 8 9

我希望格式为:

curl http://example.com/api/?arg1=1&arg2=2&arg3=3&arg4=4&arg5=5&arg6=6&arg7=7&arg8=8&arg9=9

但相反,我有:

curl http://example.com/api/?arg1=arg2&arg3=arg4&arg5=arg6&arg7=arg8&arg9=1&2=3&4=5&6=7&8=9

我知道我需要与 结合${PARAMS[@]},$@所以这些值被合并了。

是否有任何 Bash 语法可用于将参数名称转置/映射到相应的值?

为了澄清,参数的名称可能会改变。

bash shell-script
  • 2 个回答
  • 587 Views
Martin Hope
kenorb
Asked: 2018-02-26 13:34:16 +0800 CST

如何为 HTTPS 进行 SSH 端口转发?

  • 10

我创建了以下端口转发:

ssh -vL localhost:4433:example.com:443 remote-linux-host

注意:我4433在本地使用,而不是443避免使用sudo.

但是,当我转到 时https://localhost:4433/,在忽略证书检查后,出现以下错误(在 Chrome 和 Firefox 上):

404 - 未找到

使用时相同curl:

$ curl -s https://localhost:4433/ | html2text
<?xml version="1.0" encoding="iso-8859-1"?>
****** 404 - Not Found ******

如何为 HTTPS 进行端口转发?

https://example.com/我的目标是通过远程服务器在我的本地(端口 4433)上打开(通过 HTTPS 可以正常工作)。

ssh port-forwarding
  • 2 个回答
  • 19054 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve