是否可以使用awk或从文件末尾找到第一个字符串出现sed?或者我需要使用一些脚本语言,比如 Python 或 Perl?
我想在我的应用程序中使用 ListView 显示集合中的所有文档。为此,我需要检索所有文件,对吗?我怎样才能做到这一点?我搜索了很多,但在 Google 文档/任何适当的解决方案中找不到任何内容。
我正在使用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脚本,里面有:
exit 1
Run Code Online (Sandbox Code Playgroud)
当我“获取”该脚本而不是运行它时,它将导致调用者退出。
脚本有没有办法确定它是使用“源”而不是脚本运行的?
我想做这样的事情:
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) 我正在尝试按照此处的官方文档学习 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) 我的目标是在 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还包含新行。
你有什么想法?
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文件。有没有办法将这两者分开?
我有以下结构:
\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\nRun Code Online (Sandbox Code Playgroud)\n现在主要是,我正在使用
\njobs:\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 \nRun Code Online (Sandbox Code Playgroud)\n在我的send_alerts.yml
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 .....\nRun Code Online (Sandbox Code Playgroud)\n所以这让我犯了错误:
\nCan't find …Run Code Online (Sandbox Code Playgroud) 在下面的代码中,如果我注释掉它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)