相关疑难解决方法(0)

sed +仅在文件的最后一行中删除字符串

我使用以下sed命令line number从文件中删除字符串

sed -i s'/line number//g' file
Run Code Online (Sandbox Code Playgroud)

但我需要改变 sed语法,以便line number 只删除文件的最后一行?

sed

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

如何逃避历史扩展感叹号!在一个双引号"命令替换,如"$(echo'!b')"?

编辑:命令替换对于令人惊讶的行为不是必需的,尽管它是最常见的用例.同样的问题适用于echo "'!b'"

b=a

# Enable history substitution.
# This option is on by default on interactive shells.
set -H

echo '!b'
# Output: '!b'
# OK. Escaped by single quotes.

echo $(echo '!b')
# Output: '!b'
# OK. Escaped by single quotes.

echo "$(echo '$b')"
# Output: '$b'
# OK. Escaped by single quotes.

echo "$(echo '!b')"
# Output: history expands
# BAD!! WHY??
Run Code Online (Sandbox Code Playgroud)
  • 在最后一个例子中,逃脱的最佳方法是!什么?
  • 即使我使用单引号,为什么它没有逃脱echo "$(echo '$b')"呢?!和之间有什么区别$
  • 为什么echo $(echo …

syntax bash quotes

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

仅选择最后一个匹配模式

我想sed只是文本文件的最后一个匹配模式.

输入文件:

boy
boy
girl
boy
Run Code Online (Sandbox Code Playgroud)

输出文件:

boy
boy
girl
boys
Run Code Online (Sandbox Code Playgroud)

linux sed

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

用sed替换匹配的第一次出现

我正在用sed进行查找和替换,用BASH变量替换BASH变量$a(当在新行的开头时)$b:

sed -i "s#^$a#$b#" ./file.txt
Run Code Online (Sandbox Code Playgroud)

这取代了所有匹配^$a.如何只替换^a整个文件中的第一个匹配项?

bash sed

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

标签 统计

sed ×3

bash ×2

linux ×1

quotes ×1

syntax ×1