小编Cor*_*ein的帖子

grep 可以只输出匹配的指定分组吗?

说我有一个文件:

# file: 'test.txt'
foobar bash 1
bash
foobar happy
foobar
Run Code Online (Sandbox Code Playgroud)

我只想知道“foobar”后面出现什么词,所以我可以使用这个正则表达式:

"foobar \(\w\+\)"
Run Code Online (Sandbox Code Playgroud)

括号表示我对 foobar 后面的单词特别感兴趣。但是当我执行 a 时grep "foobar \(\w\+\)" test.txt,我得到了与整个正则表达式匹配的整行,而不仅仅是“foobar 之后的单词”:

foobar bash 1
foobar happy
Run Code Online (Sandbox Code Playgroud)

我更希望该命令的输出如下所示:

bash
happy
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉 grep 只输出与正则表达式中的分组(或特定分组)匹配的项目?

grep text-processing regular-expression

442
推荐指数
7
解决办法
49万
查看次数

如何将所有文件(包括隐藏文件)从一个目录移动到另一个目录?

如何将目录中的所有文件(包括隐藏文件)移动到另一个目录?

例如,如果我有一个文件夹“Foo”,里面有文件“.hidden”和“notHidden”,我如何将这两个文件移动到名为“Bar”的目录中?以下不起作用,因为“.hidden”文件保留在“Foo”中。

mv Foo/* Bar/
Run Code Online (Sandbox Code Playgroud)

自己试试吧。

mkdir Foo
mkdir Bar
touch Foo/.hidden
touch Foo/notHidden
mv Foo/* Bar/
Run Code Online (Sandbox Code Playgroud)

shell wildcards dot-files mv

192
推荐指数
3
解决办法
20万
查看次数

你如何进行 rm 的试运行以查看将删除哪些文件?

我想看看rm在 linux 中执行 an 时会删除哪些文件。大多数命令似乎都有一个试运行选项来显示此类信息,但我似乎无法为rm. 这甚至可能吗?

file-management rm

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

进程终止时的默认退出代码?

当一个进程被一个可处理的信号杀死时,例如SIGINTorSIGTERM但它不处理该信号,该进程的退出代码是什么?

对于无法处理的信号,例如SIGKILL?

据我所知,杀死进程SIGINT可能会导致退出代码130,但这会因内核或外壳实现而异吗?

$ cat myScript
#!/bin/bash
sleep 5
$ ./myScript
<ctrl-c here>
$ echo $?
130
Run Code Online (Sandbox Code Playgroud)

我不确定如何测试其他信号...

$ ./myScript &
$ killall myScript
$ echo $?
0  # duh, that's the exit code of killall
$ killall -9 myScript
$ echo $?
0  # same problem
Run Code Online (Sandbox Code Playgroud)

kill signals exit exit-status

73
推荐指数
3
解决办法
8万
查看次数

什么时候应该在目录上使用尾部斜杠?

可能的重复:
linux 如何处理多个路径分隔符(/home////username//file)

我在 linux 中使用的大多数命令的行为都完全相同,无论我是否/在目录名称的末尾包含斜杠字符。

例如:

ls /home/cklein
ls /home/cklein/

cp foo bar
cp foo/ bar/
Run Code Online (Sandbox Code Playgroud)

这个尾部斜杠什么时候重要?尾部斜杠的语义是什么?

directory slash filenames

71
推荐指数
4
解决办法
5万
查看次数

使用 snap 安装特定的先前版本的软件包?

我想在机器上安装kubectl版本1.2.4。Kubernetes 文档推荐snap用于在 Ubuntu 上安装。

snap install --help不是很有用,一个有前途的参数--revision=不起作用:

$ sudo snap install --revision=1.2.4 kubectl
error: cannot decode request body into snap instruction: invalid snap revision: "\"1.2.4\""
Run Code Online (Sandbox Code Playgroud)

我怀疑这--revision需要 SHA 而不是 semver。

使用的apt-get约定package=1.2.3也不起作用:

$ sudo snap install kubectl=1.2.4
error: snap "kubectl=1.2.4" not found
Run Code Online (Sandbox Code Playgroud)

使用文档似乎对这个问题保持沉默。

有人知道吗?

ubuntu package-management kubernetes snap

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

如何记住du和df之间的区别?

dudf做相当相似的事情,所以我总是发现自己打错了。

我想如果我知道“du”和“df”代表什么,它可能会更容易记住使用哪个。

有什么方法可以区分这两者,以便我记住哪个执行哪个操作?

disk-usage df

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

如何组合以反斜杠字符结尾的所有行?

使用像 sed 或 awk 这样的常用命令行工具,是否可以连接以给定字符结尾的所有行,如反斜杠?

例如,给定文件:

foo bar \
bash \
baz
dude \
happy
Run Code Online (Sandbox Code Playgroud)

我想得到这个输出:

foo bar bash baz
dude happy
Run Code Online (Sandbox Code Playgroud)

sed awk perl text-processing

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

启动屏幕时如何绕过或跳过介绍信息?

当我开始时screen,我收到一条消息,其中包含版本、版权和错误报告电子邮件地址。我不想每次开始都看到这个screen。搜索手册页似乎没有找到解决方案,我希望这里的专家知道绕过这个信息页的方法。

gnu-screen

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

hexdump 是否尊重其系统的字节序?

在我的机器上,当我运行这些命令时,我得到以下输出:

$ echo foos > myfile
$ hexdump myfile
6f66 736f 000a
Run Code Online (Sandbox Code Playgroud)

hexdump 的输出是小端的。这是否意味着我的机器是小端格式,还是 hexdump 总是使用小端格式?

bsd utilities hexdump

34
推荐指数
2
解决办法
3万
查看次数