我可以将第三次出现的字符串替换为:
sed 's/OLD/NEW/3'
或者,对于 的 GNU 实现sed
,从第三个开始的所有出现:
sed 's/OLD/NEW/3g'
但是如何替换最后 3 个(或 n 个)出现的位置呢?
我可以将第三次出现的字符串替换为:
sed 's/OLD/NEW/3'
或者,对于 的 GNU 实现sed
,从第三个开始的所有出现:
sed 's/OLD/NEW/3g'
但是如何替换最后 3 个(或 n 个)出现的位置呢?
我需要对我的 Linux 命令进行一些速度测试。输入数据是单词列表。例如:
$ cat list
elephant
horse
raven
cat
dog
fish
为了进行合理的速度测试,我需要有一个更大的文件。重复上述列表数十万次的最快方法是什么?
我有数百个经过测试和尝试的命令和片段保存在各种文本文件中。当我需要重复使用时,我会找到并复制/粘贴到命令行。尽管可靠,但这是一种笨拙的方法。与此相比,我们可以从历史文件中直接检索旧命令到命令行并准备编辑和使用。我如何模拟此功能并使用我自己的命令集?
我有脚本来搜索(使用 fzf)、查找并将我自己的命令附加到历史文件中。这效果很好。但它确实使历史文件变得混乱。
这是我的脚本:
find ~ -type f | fzf --preview-window=up:50% --header "ENTER:less; ^s:snip to history" --bind "enter:execute(less {})" --bind "ctrl-s:execute(cat {} | fzf -m --preview-window=:hidden >>~/.bash_history)"; history -n
当我们运行命令时,最后一个参数将被保存在_
其中,我们可以访问:
$ echo $_
听起来不像是一个非常有用的功能。那为什么还要麻烦呢?有没有实际应用?