小编Ben*_* W.的帖子

使用 awk 或 sed 从末尾查找第一次出现

是否可以使用awk或从文件末尾找到第一个字符串出现sed?或者我需要使用一些脚本语言,比如 Python 或 Perl?

awk sed

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

如何从 Firestore 的集合中检索所有文档?

我想在我的应用程序中使用 ListView 显示集合中的所有文档。为此,我需要检索所有文件,对吗?我怎样才能做到这一点?我搜索了很多,但在 Google 文档/任何适当的解决方案中找不到任何内容。

java android firebase google-cloud-firestore

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

根据文件名删除一些文件

我正在使用macOS,创建一个Bash脚本。

我将这些文件放在某个/path/to/inc/文件夹中:

./lorem-ipsum.php
./dolor-sit.amet.php
./config-prod.php
./enqueue.php
./config.php
./setup.php
./config-uat.php
./config-some-other-thing.php
Run Code Online (Sandbox Code Playgroud)

现在,我想有这些文件config*.php的名称,并删除他们除了命名一个config-prod.php,所以该文件夹最终看起来是这样的:

./lorem-ipsum.php
./dolor-sit.amet.php #Still here
./config-prod.php
./enqueue.php
./config.php #Removed
./setup.php
./config-uat.php #Removed
./config-some-other-thing.php #Removed
Run Code Online (Sandbox Code Playgroud)

有什么办法可以使用find或类似的方法吗?

bash

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

bash脚本能否区分被称为脚本和作为“源”运行?

我有一个bash脚本,里面有:

exit 1
Run Code Online (Sandbox Code Playgroud)

当我“获取”该脚本而不是运行它时,它将导致调用者退出。

脚本有没有办法确定它是使用“源”而不是脚本运行的?

bash

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

使用 sed 在包含两个特定字符串的行中添加字符

我想做这样的事情:

sed "/^[^+]/ s/\(.*$1|$2.*$\)/+\ \1/" -i file
Run Code Online (Sandbox Code Playgroud)

其中 2 个特定的字符串参数正在文件中被检查,并且在出现 BOTH 参数 ($1 | $2) 的那些行中,如果之前没有 +,则会在该行的开头添加一个 +。

到目前为止尝试了不同的变体,最终要么检查两者,要么检查包含 2 个字符串中的 1 个或一些错误的每一行。感谢有关斜杠和反斜杠转义(分别是单引号/双引号)的任何说明,我想这就是我的问题所在。

编辑:希望的结果:(包含一堆文本文件的文件夹,其中一个有以下两行)

sudo bash MyScript.sh 01234567 Wanted
Run Code Online (Sandbox Code Playgroud)

前:

sed "/^[^+]/ s/\(.*$1|$2.*$\)/+\ \1/" -i file
Run Code Online (Sandbox Code Playgroud)

预期的:

sudo bash MyScript.sh 01234567 Wanted
Run Code Online (Sandbox Code Playgroud)

linux string bash shell sed

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

多个版本的go

我正在尝试按照此处的官方文档学习 go-lng:https : //golang.org/doc/install

我被困在安装额外 go 版本的步骤上。显然,这一行应该安装不同版本的 go 并使可执行文件在我的 $PATH 中可用,但它没有发生:

go get golang.org/dl/go1.10.7
Run Code Online (Sandbox Code Playgroud)

相反,我看到的是:

c.craig$ go get golang.org/dl/go1.10.7
c.craig$ go1.10.7 download
-bash: go1.10.7: command not found
Run Code Online (Sandbox Code Playgroud)

我哪里错了?我已经尝试了一个空格,假设这只是文档中的一个错字,但即使这样也不起作用:

c.craig$ go get golang.org/dl/go1.10.7
c.craig$ go 1.10.7 download
go 1.10.7: unknown command
Run Code Online (Sandbox Code Playgroud)

go

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

如何在bash中生成随机字符串?

我的目标是在 bash 中有这样的东西:

str=random_string(n scharacters)
Run Code Online (Sandbox Code Playgroud)

我已经设法做到了以下几点:

chars=abcdefghijklmnopqrstuvwxyz
for (( i=1; i<=n; i++ ))
do
   str="${chars:RANDOM%${#chars}:1}"
done
Run Code Online (Sandbox Code Playgroud)

问题是str还包含新行。

你有什么想法?

string random bash

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

如何在 golang 中加载 .env 文件和操作系统环境变量

err := godotenv.Load(".env")
if err != nil { panic(err.Error()) }

shell := os.Getenv("SHELL")
fmt.Println(shell)
Run Code Online (Sandbox Code Playgroud)

SHELL=/bin/zsh我在文件中设置了.env,但操作系统似乎首先在操作系统环境变量列表中查找给定的键,然后检查该.env文件。有没有办法将这两者分开?

go

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

在可重用工作流程中“找不到‘action.yml’”

我有以下结构:

\n
.github\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 workflows\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.yml\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 send_alerts.yml\n
Run Code Online (Sandbox Code Playgroud)\n

现在主要是,我正在使用

\n
jobs:\n  main:\n    steps:\n      - name: Git Checkout\n        uses: actions/checkout@v3\n      - name: some job\n        run: |\n          ......\n  send_alerts:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v3\n      - uses: ./.github/workflows/send_alerts.yml@feature/workflow1\n        with:\n          provision_status: "Success"\n  \n
Run Code Online (Sandbox Code Playgroud)\n

在我的send_alerts.yml

\n
name: Creating and Sending Alerts/Status\non:\n  workflow_call:\n  \n    provision_status:\n      required: true\n      type: string\n\njobs:\n  create_send_alerts:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Git Checkout\n        uses: actions/checkout@v3\n      - name: Some other jobs\n        run: |\n        .....\n
Run Code Online (Sandbox Code Playgroud)\n

所以这让我犯了错误:

\n
Can't find …
Run Code Online (Sandbox Code Playgroud)

github github-actions

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

为什么我不能在一个类中有这两个重载?

在下面的代码中,如果我注释掉它aaa或者bbb它将编译.为什么我不能同时拥有?

#include <iostream>

class MyClass
{
private:
    typedef void (MyClass::*aaa)() const;
    typedef void (MyClass::*bbb)() const;
    void ThisTypeDoesNotSupportComparisons() const {}
public:
    operator aaa() const { return (true) ? &MyClass::ThisTypeDoesNotSupportComparisons : 0; }
    operator bbb() const { return (true) ? &MyClass::ThisTypeDoesNotSupportComparisons : 0; }
};

int main()
{
    MyClass a;
    MyClass b;

    if(a && b) {}
}
Run Code Online (Sandbox Code Playgroud)

c++

2
推荐指数
1
解决办法
81
查看次数