我正在运行一个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本身触发吗?
谢谢。
杰克
在shell中我们这样做:ls lTab我们得到从l开始的文件列表.
问题是:在shell中,如何ls lTab| cat使用Tab或不使用自动完成但不使用模式来制作这样的东西ls l*
我将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'对象没有属性“获取”
我已在Windows 10 Pro上安装了WSL。我需要从Windows命令行执行bash命令,如下所示:
bash -c ll
Run Code Online (Sandbox Code Playgroud)
预期:ll命令行控制台中的命令输出
在实践中: /bin/bash: ll: command not found
但是它对于某些命令如ls或起作用apt。
请参见 :
可能是什么问题呢?
我有一个包含数千个条目的 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。
我有一个文本文件,其中包含该文件的文件名和标签
示例字符串:
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 上不支持使用负子字符串。詹姆斯·布朗的解决方案是第一个对我有用的解决方案,所以这就是我接受他的答案的原因。
所以基本上我的复活节计算器遇到了这个问题,它是我在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我找不到任何问题,我们将不胜感激。
我需要将是或否输入传递给 bash 脚本。它适用于使用 的单个输入yes,但是如果 bash 脚本有多个输入(多个输入),我该如何传递它?以下是单个 yes 输入的示例:
yes | ./script
Run Code Online (Sandbox Code Playgroud)
如果脚本需要不同的输入,我无法按如下方式发送,例如:
yes | no | ./script
Run Code Online (Sandbox Code Playgroud) 这两个命令有什么区别?
cat test.txtbash -c "cat test.txt"我已经阅读了文档,但没有任何示例来理解它。
我的.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)
看起来好像传递了错误的论点。
但是,当我直接从终端运行完全相同的命令时,确实得到了预期的结果。
我究竟做错了什么?