如何剪切最后一个“/”之后的所有字符?
本文
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) 该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选项,但我没有成功。
我希望我的 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) 我使用该realpath命令,但它总是在路径末尾添加原始输入:
$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefklRun Code Online (Sandbox Code Playgroud) 我想在别名中插入不同可能的拼写变体,例如cat命令。我可以使用一些符号来表示“或”还是应该在新行上?
alias at|cart|cst '/bin/cat'
Run Code Online (Sandbox Code Playgroud) 我想从字符串中删除单词“foggy”。它失败。为什么?
echo 'foggy light' | sed 's/\<foggy\>//g'
Run Code Online (Sandbox Code Playgroud) 我想使用sed.
如果我想删除一个字符串,如何避免错误[?例如:
$ echo '[Om/mystring' | grep -oP '(?<=[Om\\)\w+'
grep: missing terminating ] for character class
Run Code Online (Sandbox Code Playgroud) 在许多 Linux 书籍中都写到“在命令之前执行重定向”。让我们考虑一下:
$ cat bar
hello
$ ecno "foo" > bar
bash: ecno: command not found
$cat bar
Run Code Online (Sandbox Code Playgroud)
但是它并没有将任何输出复制到 bar 中(因为没有输出),所以应该说'重定向是在命令之前部分执行的',因为'>'的一部分在这里不起作用,即复制输出命令变成一个文件吧。这样对吗?
I tried to do in tcsh the following:
$ echo $(pwd)
Run Code Online (Sandbox Code Playgroud)
It does not work.
我有一个文件。
$ cat file
"bar": false
"foo": false
Run Code Online (Sandbox Code Playgroud)
我需要替换的单词false与true仅在图案"foo": false。问题是引号和空格。
我想到了两种方法:
2 个选项的示例尝试:
$ sed -i 's/\(.*foo\)/false/true\1/g' file
Run Code Online (Sandbox Code Playgroud)
它失败了。