string - 我可以在 bash/fishshell 中使用任何字符串操作命令/库吗?

标签 string bash shell command-line fish

我是bash/fish的新手,发现有些字符串操作比较难,比如:

  1. toUpperCase/toLowerCase
  2. 一个字符串以另一个字符串开始/结束
  3. 一个字符串包含另一个字符串
  4. 获取文件名的后缀
  5. 修剪字符串
  6. 检查是否匹配正则表达式

等等。虽然我可以找到大多数情况下的各种解决方案,但我发现它们并不容易记住或使用。

所以我想知道是否有任何命令/库支持大多数常见的字符串操作,假设它的名字是mystr,那么我可以这样使用它:

  1. mystr --to-upper somestring
  2. mystr --starts-with sss somestring
  3. mystr --contains bbb sometring
  4. mystr --suffix somestring
  5. mystr --trim somestring
  6. mystr --match "some.*"somestring
  7. mystr --find-match "some(.*)"somestring $1,我的意思是在(.*)
  8. 中获取匹配的部分

最佳答案

它还没有发布,但是 top-of-tree fish 有一个不错的新 strings 特性:https://github.com/fish-shell/fish-shell/issues/156

除此之外,您通常会使用混杂的外部命令。毕竟这是 Unix!

  1. 大写:echo something | tr "[:lower:]""[:upper:]"
  2. 前缀:echo stuff | grep -q '^stu'
  3. 包含:echo stuff | grep -q 'tuf'
  4. 后缀:echo stuff | grep -q 'uff$'
  5. 修剪空格:echo 'hello' | sed 's/^[[:space:]]*//g' | sed 's/[[:space:]]*$//g'
  6. 正则表达式匹配:echo somestring | grep -q '^some.*$'
  7. 正则表达式搜索:echo somestring | grep -q 'some.*'

关于string - 我可以在 bash/fishshell 中使用任何字符串操作命令/库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34713745/

相关文章:

Java:字符串引用获得意外输出

c# - 在 C# .NET 中将字符串格式化为固定长度

linux - Shell 脚本 ls 指向第 n 个文件

linux - 如何复制前缀为 '-' 的文件?

java - 用于将字符序列转换为字符串的流的替代方案

c++ - 我可以在 C++ 中通过 > < 比较字符串吗

可以通过 bash 添加磁力链接的 Linux torrent 客户端

bash - 比较两个文件列(未排序的文件)

bash - 将 shell 的工作目录设置为在 vim 中打开的当前文件

bash - 在 shell 脚本中提取引号中的单词