小编gle*_*man的帖子

打印两个括号之间的字符串

我有这些行的文件

G8 = P(G1,G3)
G9 = P(G3,G4)
G12 = P(G2,G9)
G15 = P(G9,G5)
G16 = P(G8,G12)
G17 = P(G12,G15)
Run Code Online (Sandbox Code Playgroud)

我需要输出为

G1,G3
G3,G4
.....
Run Code Online (Sandbox Code Playgroud)

如何使用 sed/grep 命令或使用 perl 来完成?

grep sed perl

19
推荐指数
4
解决办法
6万
查看次数

从 XML 中提取属性值

使用 Bash,

文件:

<?xml version="1.0" encoding="UTF-8"?>
<blah>
    <blah1 path="er" name="andy" remote="origin" branch="master" tag="true" />
    <blah1 path="er/er1" name="Roger" remote="origin" branch="childbranch" tag="true" />
    <blah1 path="er/er2" name="Steven" remote="origin" branch="master" tag="true" />

</blah>
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

grep -i 'name="andy" remote="origin" branch=".*\"' <filename>
Run Code Online (Sandbox Code Playgroud)

但它返回整行:

<blah1 path="er" name="andy" remote="origin" branch="master" tag="true" />
Run Code Online (Sandbox Code Playgroud)

我想根据以下内容匹配该行:

name="andy"
Run Code Online (Sandbox Code Playgroud)

我只想让它返回:

master
Run Code Online (Sandbox Code Playgroud)

grep xml

11
推荐指数
3
解决办法
1万
查看次数

为什么是 [[ -n $var ]] 而不是 [[ $var ]]?

这个答案中,我有一些代码如下:

if [[ $ZSH_VERSION ]]; then
Run Code Online (Sandbox Code Playgroud)

被编辑为:

if [[ -n $ZSH_VERSION ]]; then
Run Code Online (Sandbox Code Playgroud)

更新:我刚看到编辑评论:

[[ x ]] 直到最近才在 zsh 中工作

我查看了zsh发行说明,但找不到对此的参考。

zsh首先允许哪个版本[[ x ]]

zsh

7
推荐指数
1
解决办法
505
查看次数

如何生成*所有*可用命令和函数的列表?

在 Linux(我使用 CentOS 7)中,有一个内置功能可以查看所有可运行的命令。该命令通过在控制台中按两次 Tab 键然后出现提示来运行:

Display all 1130 possibilities? (y or n)
Run Code Online (Sandbox Code Playgroud)

按下y会向控制台输出大量命令。

有没有办法在文件中捕获这个输出?

或者这个列表是否已经存储在本地?如果是这样,我如何访问它?

linux bash autocomplete command

5
推荐指数
1
解决办法
1699
查看次数

使用 Bash 的惰性正则表达式

我正在尝试使用 Bash 的内置正则表达式函数仅匹配 HTML 标签中包含的文本:

string='<span class="circle"> </span>foo</span></span>'
regex='<span class="circle"> </span>(.+?)</span>'
[[ $string =~ $regex ]]
echo "${BASH_REMATCH[1]}"
Run Code Online (Sandbox Code Playgroud)

但比赛不断捕获foo</span>

互联网上充斥着 sed 和 grep 的例子,我在 Bash 自己的正则表达式上找不到太多文档。

bash regular-expression

4
推荐指数
1
解决办法
6954
查看次数

向变量追加和前置一个值(在 Fish shell 中或一般情况下)意味着什么?

根据命令的 Fish shell 文档set

append:将值附加变量的当前值集。这可以与--prepend一起使用来同时追加和前置。

prepend:将值添加变量当前值集的前面。这可以与--append一起使用以同时追加和前置。

在日常英语中,append是添加的意思,prepend是在开头添加的意思。显然,这些含义不适用于鱼(或一般的计算机?),因为说我们既可以将x 添加到 y,同时也可以将 x 添加到 y 的开头,这是多余的。如果我们能做到后者,那么我们就能做到前者。也就是说,通过做后者,我们就做了前者。如果说我既从起跑线开始比赛又参加比赛是没有意义的,那么说我既在前面添加一些数据又在附加该数据也是没有意义的。

那么,这些术语对钓鱼(或在软件开发领域)意味着什么?做其中一项而不是另一项会有什么影响?明确地同时执行这两项操作意味着什么?

programming fish

-1
推荐指数
1
解决办法
3576
查看次数

标签 统计

bash ×2

grep ×2

autocomplete ×1

command ×1

fish ×1

linux ×1

perl ×1

programming ×1

regular-expression ×1

sed ×1

xml ×1

zsh ×1