目前,当我想使用jq漂亮地打印一个 json 文件时,我使用:
cat file.json | jq .
Run Code Online (Sandbox Code Playgroud)
但是我希望jq接受一个文件名作为参数而不必回退到cat.
手册页说:
jq [选项...] 过滤器 [文件...]
... 默认情况下,jq 从 stdin 读取 JSON 对象流(空格分隔)。可以指定一个或多个文件,在这种情况下 jq 将从这些文件中读取输入。
仍在运行:
jq file.json
Run Code Online (Sandbox Code Playgroud)
通过抛出未定义键的编译错误而失败。
运行时我应该如何添加文件jq?
下载 Bash 的源代码后,我浏览了doc目录并遇到了以下文件:
这些控制字符不会显示在 Git Web 界面提供的表示中,但可以下载实际文件并在 Vim 等文本编辑器中检查。
在fileon 上运行命令会bash.0打印以下输出:
bash.0: ASCII text, with overstriking
Run Code Online (Sandbox Code Playgroud)
我以前从未遇到过这种文件格式,我想知道它的用途是什么以及如何使用。在 Web 上搜索短语“ASCII 文本,加粗”并不是很有启发性。
我的脚本:
date
echo -e "${YELLOW}Network check${NC}\n\n"
while read hostname
do
ping -c 1 "$hostname" > /dev/null 2>&1 &&
echo -e "Network $hostname : ${GREEN}Online${NC}" ||
echo -e "${GRAY}Network $hostname${NC} : ${RED}Offline${NC}"
done < list.txt
sleep 30
clear
done
Run Code Online (Sandbox Code Playgroud)
正在输出这样的信息:
Network 10.x.xx.xxx : Online
Network 10.x.xx.xxx : Offline
Network 10.x.xx.xxx : Offline
Network 10.x.xx.xxx : Offline
Network 10.x.xx.x : Online
Network 139.xxx.x.x : Online
Network 208.xx.xxx.xxx : Online
Network 193.xxx.xxx.x : Online
Run Code Online (Sandbox Code Playgroud)
我想清理它以获得这样的东西:
Network 10.x.xx.xxx : Online
Network 10.x.xx.xxx : Offline …Run Code Online (Sandbox Code Playgroud) 邮件日志非常难以阅读。如何在命令行上打印的每一行之间输出一个空行?例如,假设我正在搜索日志。这样,多条包装线就不会被混淆。
我不想像标准 awk 配方那样将表格数据转换为漂亮的列。我希望将一些很长的文本格式化为像报纸专栏这样的专栏。
例如转
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris tempus orci ut odio tincidunt, vel hendrerit ante viverra. Aenean mollis ex erat, ac commodo lectus scelerisque eget. Aenean sit amet purus felis. Aenean sit amet erat eget velit lobortis fermentum eget eget odio. Donec tincidunt rutrum varius. Nunc viverra ac erat id bibendum. Aenean sit amet venenatis arcu. Morbi enim enim, pulvinar sed velit in, sollicitudin tristique urna. In auctor ex vel diam sagittis, at placerat …Run Code Online (Sandbox Code Playgroud) 假设我有一个文件:
文件1:
PAPER TEAM MANISH NISHA GARIMA JYOUTI ........etc
Run Code Online (Sandbox Code Playgroud)
我想要的文件 2:
PAPER
TEAM
MANISH
NISHA
GARIMA
JYOUTI
Run Code Online (Sandbox Code Playgroud)
File1 的行到列转换。
我有名为file.88_0.pdb, file.88_1.pdb, ..., 的文件file.88_100.pdb。我想要cat它们,以便file.88_1.pdb在file.88_0.pdb、file.88_2.pdb之后 等之后粘贴file.88_1.pdb。如果我这样做cat file.88_*.pdb > all.pdb,文件将按以下顺序放在一起:0 1 10 11 12 13 14 15 16 17 18 19 2 20...等。如何将它们放在一起以便顺序是0 1 2 3 4 5 6...?
我正在尝试编写一个脚本,该脚本可以在一段时间内监视进程的 CPU 使用情况(以创建图形)。
到目前为止,这是我正在使用的命令
ps -p $PROCID -o cputime,etimes
Run Code Online (Sandbox Code Playgroud)
我唯一担心的是 cputime 的输出似乎是[dd]hh:mm(或类似的东西,现在想不起来了)
有没有办法以秒为单位格式化 cputime,有点像 etime -> etimes 以秒为单位获取经过的时间?
编辑:这是我目前收到的输出
2-03:01:33 2653793
Run Code Online (Sandbox Code Playgroud)
我希望第一个参数以秒为单位格式化,而不是天-小时:分钟:秒。
我有一个包含两列的文件,如下所示(示例):
文件 1:
John 1
Peter 2
Michael Rod 3
Su 7
Louise 9
Run Code Online (Sandbox Code Playgroud)
我需要格式化这个,我的预期输出应该是:
文件 1:
John 1
Peter 2
Michael Rod 3
Su 7
Louise 9
Run Code Online (Sandbox Code Playgroud) 我有许多文件(Jupyter 笔记本.ipynb),它们是文本文件。所有这些都包含一些 LaTeX 标记。但是当我运行时file,我得到:
$ file nb_*
nb_1.ipynb: ASCII text
nb_2.ipynb: ASCII text
nb_3.ipynb: ASCII text, with very long lines
nb_4.ipynb: LaTeX document, ASCII text, with very long lines
nb_5.ipynb: text, with very long lines
Run Code Online (Sandbox Code Playgroud)
file这些怎么区分?我希望所有文件都具有相同的类型。
(为什么文件应该有相同的类型?我将它们上传到在线系统进行共享。系统以某种方式对它们进行分类并以不同的方式对待它们,我不可能更改它。我怀疑该平台在内部使用file或可能使用libmagic和想解决这个问题。)
text-formatting ×10
columns ×2
files ×2
awk ×1
bash ×1
cat ×1
command-line ×1
file-command ×1
file-types ×1
jq ×1
json ×1
logs ×1
man ×1
output ×1
ps ×1
scripting ×1
sed ×1
shell ×1
shell-script ×1
text ×1