前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >几个新一代命令行工具

几个新一代命令行工具

作者头像
爬虫技术学习
发布2023-03-06 14:37:09
3960
发布2023-03-06 14:37:09
举报
文章被收录于专栏:爬虫技术学习爬虫技术学习

新一代命令行工具的特点是语法简单,符合直觉。他们大多使用 rust 或者 go 编写。

sd

sd 可以替代 sed。sd 是使用 rust 编写的,所以使用的正则引擎和你在 JS 和 Python 中熟悉的正则引擎是一致的,也就不需要各种奇奇怪怪的转义了。sd 还具有字符串模式,也就是关闭正则表达式,这也避免了一些转义的工作量。

安装

代码语言:javascript
复制
# 首先安装 rust,如果没有安装的话
~$ curl https://sh.rustup.rs -sSf | sh
~$ cargo install sd

使用

代码语言:javascript
复制
# 和 sed 的对比:
sd: sd before after
sed: sed s/before/after/g

# 字符串模式, -s 开启,可以看到括号就是括号
> echo 'lots((([]))) of special chars' | sd -s '((([])))' ''
lots of special chars

# 默认是正则模式
> echo 'lorem ipsum 23   ' | sd '\s+$' ''
lorem ipsum 23

# 使用正则分组
> echo 'cargo +nightly watch' | sd '(\w+)\s+\+(\w+)\s+(\w+)' 'cmd: $1, channel: $2, subcmd: $3'
cmd: cargo, channel: nightly, subcmd: watch

# 替换文件,使用 -i
> sd 'window.fetch' 'fetch' -i http.js

fd

fd 可以用来替代 find。和 sed 一样,find 命令也使用了一些古老的正则语法,要查找含有某个字的文件,或者过滤某个类型的文件都要使用一些比较难以记忆的通配符。fd 命令则好了,没有什么复杂的,基本上按照直觉敲出来就对了。

安装

代码语言:javascript
复制
brew install fd  # homebrew/linuxbrew
或者
cargo install fd-find  # 首先需要安装 rust,如前文所述

使用

代码语言:javascript
复制
# 查找包含 name 的文件
-> % find . -name "*hello*"
./courses/hello_world.go
./courses/chapter_01/hello_world.go
./courses/chapter_01/hello_world
./examples/01_hello_world.go

# 相比之下 fd 则简单多了
-> % fd hello
courses/chapter_01/hello_world
courses/chapter_01/hello_world.go
courses/hello_world.go
examples/01_hello_world.go

# 查找 markdown 类型的文件
-> % find . -name "*.md"
./courses/chapter_01/chapter_1.md
./courses/chapter_1.md

-> % fd -e md
courses/chapter_01/chapter_1.md
courses/chapter_1.md

# 使用 exec,这是我对 find 命令最不满意的地方,结尾的分号实在费解
-> % find . -name "*.md" -exec wc -l {} \;
     114 ./courses/chapter_01/chapter_1.md
     114 ./courses/chapter_1.md


-> % fd -e md --exec wc -l {}
     114 courses/chapter_1.md
     114 courses/chapter_01/chapter_1.md

bat

bat 是个带了高亮和git集成版的 cat。虽说按照 Unix 哲学的话 cat|highlight 命令也能实现类似的功能,但是还是 bat 更省心一点,默认主题也更漂亮一点。

安装

代码语言:javascript
复制
brew install bat

使用

直接用就好了。。建议 aliascat=bat

sk 和 fzf

sk 和 fzf 是两个模糊搜索工具,分别使用 rust 和 go 编写,两个的功能比较接近,这里以我日常使用的 fzf 为例。

还有几个工具,有点困了,下次再写。。

Ref

  1. https://github.com/chmln/sd
  2. https://github.com/sharkdp/fd
  3. https://www.wezm.net/technical/2019/10/useful-command-line-tools/
  4. https://boyter.org/posts/my-list-of-useful-command-line-tools/
  5. https://github.com/lotabout/skim#difference-to-fzf
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 爬虫技术学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • sd
    • 安装
      • 使用
      • fd
        • 安装
          • 使用
          • bat
            • 安装
              • 使用
              • sk 和 fzf
              • Ref
              相关产品与服务
              命令行工具
              腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档