小编k0p*_*kus的帖子

如何通过一个表达式用一个词搜索和替换多个针?

假设您有一个文本文件:

foo fnord bar
bizz foo poit
Run Code Online (Sandbox Code Playgroud)

现在我想将“foo”和“bar”都替换为“narf”。

我知道我可以使用:

 sed -e 's/foo/narf/g' -e 's/bar/narf/g' fileName
Run Code Online (Sandbox Code Playgroud)

然而,我想与一个 OR 运算符一起工作,它告诉正则表达式通过一个表达式匹配两个针。

打了一些手册,我想管道应该适合我的需要,但我试过了

sed -e 's/foo|bar/narf/g' -i fileName
Run Code Online (Sandbox Code Playgroud)

它没有用,它甚至没有抛出错误。

我在这里做错了什么?

sed search text-processing regular-expression

8
推荐指数
2
解决办法
9033
查看次数

我应该使用 useradd 还是 adduser?

我正在尝试向系统添加新用户。我很困惑要运行哪个命令:useradd还是adduser

users administration debian useradd

8
推荐指数
2
解决办法
3005
查看次数

如何将多个 XCF 文件转换为 PNG?

我有一个文件夹,里面有很多xcf文件,我希望所有文件都转换为png文件,最好是通过 bash 的单行文件。

我怎样才能完成这样的任务?

bash images gimp png

7
推荐指数
2
解决办法
4801
查看次数

如何通过 ssh 杀死 Chrome 命令行?

我在树莓派上运行了一个 Chromium,显示了一些监视器统计信息。有时,启动无法打开相关选项卡,因此我想重新启动铬。仍在运行:

killall chromium-browser
Run Code Online (Sandbox Code Playgroud)

只杀死选项卡,向我显示“哦,快”信息。我希望整个铬都关闭。

再次运行相同的命令会产生:

killall chromium-browser 
chromium-browser: no process found
Run Code Online (Sandbox Code Playgroud)

即使我看到了 oh snap 标签。

command-line kill chrome raspbian

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

在vim中的一行上进行条件搜索和替换?

假设我想评论和取消注释一行。

我知道我可以

:s!^!//!
Run Code Online (Sandbox Code Playgroud)

进而

:s!^//!!
Run Code Online (Sandbox Code Playgroud)

现在如果我想把它作为单线怎么办?

基本上,如果一行开始,//则删除它,否则添加它。

我想将此命令映射到一个快捷方式而不是两个。

vim search replace

6
推荐指数
1
解决办法
1762
查看次数

如何使用 docker exec 运行源代码?

我想在运行 Ubuntu 的 docker 容器中获取一个文件,而无需进入容器内部。

我曾经:

docker exec -it CONTAINER_ID bash
source FILE
Run Code Online (Sandbox Code Playgroud)

现在我想做:

docker exec -it CONTAINER_ID source FILE
Run Code Online (Sandbox Code Playgroud)

并惊讶于错误弹出:

exec: "source": executable file not found in $PATH
Run Code Online (Sandbox Code Playgroud)

确实,我意识到这source似乎不是您的标准命令,因为我无法通过which source. ls表现得很好。

source无论如何,这个命令是什么样的东西,以及如何通过它来执行它docker exec -it

linux bash docker

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

反转“for in * do”循环的结果

可能的重复:
如何反转 for 循环?

有没有一种简单的方法来反转 for in 循环?对于脚本,我想以相反的顺序处理文件。

所以而不是:

for file in *.jpg;
  do echo $file;
done
Run Code Online (Sandbox Code Playgroud)

结果

001.jpg
002.jpg
003.jpg
...
150.jpg
Run Code Online (Sandbox Code Playgroud)

我想要结果

150.jpg
149.jpg
148.jpg
...
001.jpg
Run Code Online (Sandbox Code Playgroud)

scripting bash shell-script

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

如何在 egrep 中匹配行内的单词时突出显示整行?

目前,我使用

egrep --color 'error|$'
Run Code Online (Sandbox Code Playgroud)

突出显示包含单词 error 的行中的每个单词:

在此处输入图片说明

我想突出显示整行,以便整个字符串显示为红色。

我怎样才能做到这一点?

grep colors highlighting

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

如何显示 Discordian 日期?

我是不和谐主义的坚定信徒。然而,大多数情况下,我面临着讨厌的异教徒的时间测量。

我怎么知道它到底是什么日期?

date

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

如何区分更改的行和添加的行?

我有两个 csv 文件,我想在其中找出删除、修改和添加的行。(第一个字段是唯一的 ID。)

第一个文件看起来像:

0, WILL_BE_REMOVED
1, OLD
2, SAME
3, SAME
Run Code Online (Sandbox Code Playgroud)

和一个更新的 csv 文件:

1, CHANGED
2, SAME
3, SAME
4, ADDED
5, ADDED
Run Code Online (Sandbox Code Playgroud)

我在想这diff可能会告诉我,但是当我跑步时:

diff newer_file.csv  older_file.csv 
1c1,2
< 1, CHANGED
---
> 0, WILL_BE_REMOVED
> 1, OLD
4,5c5
< 4, ADDED
< 5, ADDED
---
> 
Run Code Online (Sandbox Code Playgroud)

我看到一条改变的线,类似于添加的线。有没有办法区分更改和添加?

我可以用 diff 实现我想要的吗?如果没有,其他一些 bash 工具是否适合我的用例?

DELETED: 0, WILL_BE_REMOVED
UPDATED: 1, CHANGED
ADDED 4,
ADDED 5,
Run Code Online (Sandbox Code Playgroud)

diff text-processing csv

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