gpt4 book ai didi

linux - 在 bash 别名 $argv 中自动转义 IP 地址

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:53:22 25 4
gpt4 key购买 nike

我想设置一个 bash 别名来自动 grep 目录中的所有日志;然而,为了使它对用户友好,我需要转义句点并添加一个空白边界,这样 grep 就不会匹配太多行。

首先我检查以确保我有正确的语法来转义地址...

[mpenning@sasmars daily]$ echo 1.1.1.1 | sed "s/\./\\\\./g"
1\.1\.1\.1
[mpenning@sasmars daily]$

接下来我试图逃避 CLI 参数......但它并没有让我到达那里......

[mpenning@sasmars daily]$ alias tryme='echo `sed "s/$argv[1]/\\\\./g"`'
[mpenning@sasmars daily]$ tryme 1.1.1.1

-> 无限期挂起,直到我点击 cntlc

我知道 echo 不会搜索,但这是一个简单的测试。

将参数中的句点转义到 bash 别名的最简单方法是什么?

最佳答案

你想要的是一个函数,你可以使用 bash 的内置替换语法:

$ function tryme() { echo "${1//./\.}"; }
$ tryme 1.1.1.1
1\.1\.1\.1
$ tryme "also. with ... spaces"
also\. with \.\.\. spaces

这将避免您 fork sed 进程。

关于linux - 在 bash 别名 $argv 中自动转义 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12427892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com