假设您有一个文本文件:
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)
它没有用,它甚至没有抛出错误。
我在这里做错了什么?
我正在尝试向系统添加新用户。我很困惑要运行哪个命令:useradd
还是adduser
?
我有一个文件夹,里面有很多xcf
文件,我希望所有文件都转换为png
文件,最好是通过 bash 的单行文件。
我怎样才能完成这样的任务?
我在树莓派上运行了一个 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 标签。
假设我想评论和取消注释一行。
我知道我可以
:s!^!//!
Run Code Online (Sandbox Code Playgroud)
进而
:s!^//!!
Run Code Online (Sandbox Code Playgroud)
现在如果我想把它作为单线怎么办?
基本上,如果一行开始,//
则删除它,否则添加它。
我想将此命令映射到一个快捷方式而不是两个。
我想在运行 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
?
可能的重复:
如何反转 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) 目前,我使用
egrep --color 'error|$'
Run Code Online (Sandbox Code Playgroud)
突出显示包含单词 error 的行中的每个单词:
我想突出显示整行,以便整个字符串显示为红色。
我怎样才能做到这一点?
我有两个 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)