小编Jos*_*muk的帖子

删除最后一个 / 之后的所有字符

如何剪切最后一个“/”之后的所有字符?

本文

xxxx/x/xx/xx/xxxx/x/yyyyy
xxx/xxxx/xxxxx/yyy
Run Code Online (Sandbox Code Playgroud)

应该回来

xxxx/x/xx/xx/xxxx/x
xxx/xxxx/xxxxx
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

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

使用 sed 命令时如何获取退出状态?

grep命令给出退出状态:

$echo "foo.bar" | grep -o foo
foo
$echo $?
0
$echo "foo.bar" | grep -o pop
$echo $?
1  
Run Code Online (Sandbox Code Playgroud)

但是我需要使用sed并且我意识到它没有退出状态:

$echo "foo.bar" | sed 's/bar.*$//'
foo.
$echo $?
0
$echo "foo.bar" | sed 's/pop.*$//'
foo.bar
$echo $?
0  
Run Code Online (Sandbox Code Playgroud)

我知道我应该玩这个-q选项,但我没有成功。

command-line sed

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

在 find 命令后使用连接器

我希望我的 bash 仅在找到某些内容时才使用 find 命令打印“找到”。但是使用 && 无济于事:即使什么也没找到,我也会打印“找到”。例子:

$ pwd
/data/data/com.termux/files/home/test/test1/test4
$ ls
xaa  xab
$ find . -name xac && echo 'found'
found
$ find . -name xaa && echo 'found'
./xaa
found
Run Code Online (Sandbox Code Playgroud)

command-line find

10
推荐指数
2
解决办法
719
查看次数

Realpath 输出包括输入

我使用该realpath命令,但它总是在路径末尾添加原始输入:

$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl
Run Code Online (Sandbox Code Playgroud)

bash

9
推荐指数
3
解决办法
801
查看次数

一次创建多个 shell 别名

我想在别名中插入不同可能的拼写变体,例如cat命令。我可以使用一些符号来表示“或”还是应该在新行上?

alias at|cart|cst '/bin/cat'
Run Code Online (Sandbox Code Playgroud)

command-line alias

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

使用 sed 删除完全匹配的单词

我想从字符串中删除单词“foggy”。它失败。为什么?

echo 'foggy light' | sed 's/\<foggy\>//g'
Run Code Online (Sandbox Code Playgroud)

sed

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

为什么我收到错误“缺少字符类的终止 ]”?

我想使用sed.

如果我想删除一个字符串,如何避免错误[?例如:

$ echo '[Om/mystring' | grep -oP '(?<=[Om\\)\w+'
grep: missing terminating ] for character class
Run Code Online (Sandbox Code Playgroud)

command-line regex grep text-processing

4
推荐指数
2
解决办法
5409
查看次数

在命令之前执行重定向

在许多 Linux 书籍中都写到“在命令之前执行重定向”。让我们考虑一下:

$ cat bar
hello
$ ecno "foo" > bar
bash: ecno: command not found
$cat bar
Run Code Online (Sandbox Code Playgroud)
  1. 如果 bar 不存在,重定向将创建它。
  2. 如果 bar 存在并且命令不起作用,它会擦除​​ bar 的内容。

但是它并没有将任何输出复制到 bar 中(因为没有输出),所以应该说'重定向是在命令之前部分执行的',因为'>'的一部分在这里不起作用,即复制输出命令变成一个文件吧。这样对吗?

redirect

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

tcsh 中 '$()' 的模拟是什么?

I tried to do in tcsh the following:

$ echo $(pwd) 
Run Code Online (Sandbox Code Playgroud)

It does not work.

tcsh

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

使用 sed 有选择地用引号替换字符串

我有一个文件。

$ cat file
"bar":  false
"foo":  false
Run Code Online (Sandbox Code Playgroud)

我需要替换的单词falsetrue仅在图案"foo": false。问题是引号和空格。

我想到了两种方法:

  1. 在某种 qoutes/双引号中隔离整个模式。
  2. 仅替换前面有“foo”的“false”。

2 个选项的示例尝试:

$ sed -i 's/\(.*foo\)/false/true\1/g' file
Run Code Online (Sandbox Code Playgroud)

它失败了。

command-line sed text-processing

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

标签 统计

command-line ×6

sed ×3

text-processing ×3

alias ×1

bash ×1

find ×1

grep ×1

redirect ×1

regex ×1

tcsh ×1