小编Ase*_*rre的帖子

是否可以在 jq 命令中包含当前时间戳?

我正在运行一个curl Rest-api 调用并尝试在UBUNTU 中添加一些键/值对。这是我当前的命令:

curl ..... | jq -c '{"online": .switches.optional.online, "offline": .switches.optional.offline}'
Run Code Online (Sandbox Code Playgroud)

我收到的输出如下:

{ "online": 85, "offline": 196 }
Run Code Online (Sandbox Code Playgroud)

但我真正想要的是让当前时间戳包含 json 正文,就像:

   { "current-time": "Wed Apr 15 14:18:42 PDT 2020", "online": 85, "offline": 196 }
Run Code Online (Sandbox Code Playgroud)

API响应体没有当前时间戳消息,这可以由jq本身触发吗?

谢谢。

杰克

json jq

4
推荐指数
1
解决办法
3106
查看次数

如何将自动完成列表传递给shell中的管道?

在shell中我们这样做:ls lTab我们得到从l开始的文件列表.

问题是:在shell中,如何ls lTab| cat使用Tab或不使用自动完成但不使用模式来制作这样的东西ls l*

bash shell

3
推荐指数
1
解决办法
133
查看次数

pycharm无法在WSL上使用远程ssh python解释器运行.py进行编码

我将pycharm配置为在同一台计算机上的WSL(Linux的Windows子系统)上使用远程ssh python解释器,以运行python程序。但似乎遇到编码问题。我将所有的file_encoding更改为'utf8',但是不起作用。

raceback(最近一次通话最近):文件“ /home/yanhui/anaconda2/lib/python2.7/encodings/ init .py”,第74行,在search_function条目中= _cache.get(encoding,_unknown)AttributeError:'NoneType'对象没有属性“获取”

在此处输入图片说明

这是pycharm编码配置: 在此处输入图片说明

ssh远程解释器可以正常工作: 在此处输入图片说明

python pycharm windows-subsystem-for-linux

3
推荐指数
1
解决办法
723
查看次数

从Windows命令行(WSL)运行bash命令

我已在Windows 10 Pro上安装了WSL。我需要从Windows命令行执行bash命令,如下所示:

bash -c ll
Run Code Online (Sandbox Code Playgroud)

预期:ll命令行控制台中的命令输出

在实践中: /bin/bash: ll: command not found

但是它对于某些命令如ls或起作用apt

请参见 :

屏幕截图与示例

可能是什么问题呢?

bash windows-subsystem-for-linux

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

使用 JQ 从文件中删除重复的 JSON 块

我有一个包含数千个条目的 JSON 文件,我需要删除重复的块。

以下是该文件的示例:

{ "signatures": [
   {
     "signatureId": 0050,
     "mode": 0
   },
   {
     "signatureId": 0012,
     "mode": 0
   },
   {
     "signatureId": 0012,
     "mode": 1
   }
]}
Run Code Online (Sandbox Code Playgroud)

这是要实现的目标结果:

{ "signatures": [
   {
     "signatureId": 0050,
     "mode": 0
   },
   {
     "signatureId": 0012,
     "mode": 0
   }
]}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,“mode”值并不重要,真正重要的是“signatureId”不能重复,因此当我们删除整个块时,无论“mode”保留哪个,都不是问题。

我只能使用 Shell 和/或 JQ。

bash shell json jq

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

如何获取 bash 脚本中除最后一个字符之外的所有字符?

我有一个文本文件,其中包含该文件的文件名和标签

示例字符串:
0-3081031014094495-0.png 0

我正在使用此命令迭代文本文件并获取最后一个字符。

while IFS= read -r line; do
    echo $line | tail -c 2
done <$PWD/$i/caffe/test.txt
Run Code Online (Sandbox Code Playgroud)

我还想获得最后一个字符之前的所有内容。我将echo $line | head -c -2其解释为: 从头开始并获取所有内容,直到最后两个字符

编辑:

感谢您提供这么多非常快速的答案。我在原来的问题中没有提到的是我正在使用 Mac。我认为这并不重要,但尝试了你的一些答案后我意识到这很重要。

例如,Mac 上不支持使用负子字符串。詹姆斯·布朗的解决方案是第一个对我有用的解决方案,所以这就是我接受他的答案的原因。

macos bash shell

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

Bash中的Easter计算产生恒定结果

所以基本上我的复活节计算器遇到了这个问题,它是我在shellcheck上检查过的bash脚本,但是运气很小甚至没有,这是代码:

#!/shell/bash

read -r -p year
Am19=$((year% 19))
m19=$((19*(Am19)))
Am4=$((year%7))
m4=$((19*(Am4)))
Am2=$((year%4))
m2=$((2*(Am2)))
Av2=$((16+(m19)))
v2=$((Av2%30))
Av1=$((6*(v2)+m4+m2))
v1=$((Av1%7))
p=$((v1+v2))
echo "$p"
Run Code Online (Sandbox Code Playgroud)

一切似乎都很好,但是每次我输入数字时,结果总是出来21我找不到任何问题,我们将不胜感激。

linux bash

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

按顺序将 YES 和 NO 传递给 bash 脚本

我需要将是或否输入传递给 bash 脚本。它适用于使用 的单个输入yes,但是如果 bash 脚本有多个输入(多个输入),我该如何传递它?以下是单个 yes 输入的示例:

yes | ./script
Run Code Online (Sandbox Code Playgroud)

如果脚本需要不同的输入,我无法按如下方式发送,例如:

yes | no | ./script
Run Code Online (Sandbox Code Playgroud)

linux bash

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

使用 bash -c 运行命令与不使用 bash -c 运行命令

这两个命令有什么区别?

  1. cat test.txt
  2. bash -c "cat test.txt"

我已经阅读了文档,但没有任何示例来理解它。

bash

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

Zsh别名不起作用,但是在终端中粘贴时命令确实起作用

我的.zshrc文件中有一个别名,称为“管家”,如下所示:

alias housekeeping="git fetch -p && git branch -vv | grep ': gone]' | awk '{print $1}' | xargs git branch -d"
Run Code Online (Sandbox Code Playgroud)

当我运行此命令时,由于某种原因,我得到以下输出:

error: The branch '12795-add-ship-info-to-FAQ' is not fully merged.
If you are sure you want to delete it, run 'git branch -D 12795-add-ship-info-to-FAQ'.
error: branch '97167bb3f' not found.
error: branch '[origin/12795-add-ship-info-to-FAQ:' not found.
error: branch 'gone]' not found.
error: branch 'Edits' not found.
error: branch 'to' not found.
error: branch 'text' not found.
Run Code Online (Sandbox Code Playgroud)

看起来好像传递了错误的论点。

但是,当我直接从终端运行完全相同的命令时,确实得到了预期的结果。

我究竟做错了什么?

git bash zsh zshrc

0
推荐指数
1
解决办法
245
查看次数

标签 统计

bash ×8

shell ×3

jq ×2

json ×2

linux ×2

windows-subsystem-for-linux ×2

git ×1

macos ×1

pycharm ×1

python ×1

zsh ×1

zshrc ×1