Bash:去除特殊外壳之前的所有东西

  • 本文关键字:外壳 Bash bash awk sed
  • 更新时间 :
  • 英文 :


我得到了一个大的json文件,每个值中都有要修改的文本。如果我们查看第一个条目,它看起来像:

$ cat description6fr.json | jq '.[0].fr'
SomethingnSomethingsnnSomethingnnSomething

如何在第一个\n\n之前剪切所有内容?我确实用sed和awk尝试了很多东西,但欢迎帮助。谢谢

您可以使用index来查找匹配项,然后对其进行切片:

jq '.[0].fr | .[index("nn") + 2:]' description6fr.json

如果字符串与nn不匹配,这将截断前两个字符,因此您可能更喜欢以下内容:

jq '.[0].fr| if index("nn") then .[index("nn") + 2:] else . end' description6fr.json

你可以用参数化

jq --argjson s '"nn"' 'if index($s) then .[index($s) + 2:] else . end'

最新更新