![]() |
1
2
您的输入似乎每个字段有20个字符的固定宽度,因此您可以使用gawk的
从…起
|
![]() |
2
2
您必须将默认输出中的空格填充“压缩”为单个空格。
所以,在你的情况下使用
如果输出为固定列宽,则可以使用此剪切变量:
这将剪切第41列到第60列,在那里我们可以找到图像ID。
如果输出使用
|
![]() |
3
1
尝试以下操作:
命令
|
![]() |
4
1
在一般情况下,避免分析用于人类消费的输出。许多现代实用程序提供了一个选项,可以以一些标准格式(如JSON或XML,甚至CSV)生成输出(尽管这没有那么严格的规定,并且存在多种“方言”)。
如果您无法避免编写自己的解析器(您真的确定吗?再看看!),
(
对于固定宽度的列,它允许您按索引拉出字符串:
。。。虽然你可以用
。。。但请注意,Docker可能会根据您的屏幕大小调整列宽! Awk还允许您编写正则表达式提取:
这就是它与
虽然
如果您以前没有使用过regex,那么上面的内容看起来很神秘,但其实并不难区分。我们正在寻找非空格序列(列中的一个字段)后跟空格序列(列分隔符)——ID字段前面两个空格,后面是任何空格,从ID列后面的第一个空格开始。
如果您想学习shell脚本,您可能还应该至少学习Awk的基础知识(以及对
。。。这里有一个
Python
|
![]() |
5
0
具有
|
![]() |
6
0
我们可以吗
我如何确定要选择哪个Sed/AWK/Cut
?YMMV。对于字段由两个或多个空格分隔的特定输入,可以使用awk将字段分隔符设置为
输出:
作为一个衬里:
|
![]() |
Plankt0n · Shell,执行一个需要逐一遍历多个值的命令 6 月前 |
![]() |
Fin · 如何使用bash从表中提取数据 6 月前 |
![]() |
aenagy · Bash声明不喜欢带空格的值 6 月前 |
![]() |
PkDrew · AND运算符“&”在“&tee”中的作用是什么? 6 月前 |
![]() |
elbarna · 正则表达式仅排除小写字符串,但保存包含大写的字符串 6 月前 |
![]() |
Harry · 使用“$!”获取后台作业的pid 7 月前 |
![]() |
nmr · 使用来自另一个shell脚本的if语句的返回码函数 7 月前 |
![]() |
minseong · Git sed忽略二进制文件 10 月前 |
![]() |
Jesper.Lindberg · 检查参数是否包含null 10 月前 |