我正在尝试阅读"Description 4"
列的所有值。如果所有值都在同一行并且没有值为空,我可以读取它但在下面的情况下,一些值是空值,而一些值不是与其他值在同一行中。请建议我如何将所有值拉到“description 4
”以下。
下面是整个斜体文本,中间有列,我需要从中获取Description 4
甲。保证并代表其具有下列所列的全部合法所有权和/或包含所有权的移动,免费且不含所有留置权和esffcswes以及cdwswys此类所有权,以及任何regqsdfon和文件(如 适用),自删除之日起生效或(如适用)。
Description
Description 1. Description 2 Description 3 Description 4
Amount ($)
LSMSNDHAM107 25,000
Variable length value DCX12300 1
XWSAQ23A1CM
VariableLengthValue 1 4,000
B中。如果将删除遗嘱,将自费,安排在正常工作时间或按计划时取消遗嘱。 等文档将继续。
答案 0 :(得分:0)
从您的示例输入中,您想要的值显示在文件的第80到95列中。如果是这种情况,请使用cut
:
$ cut -b80-95 File
Description 4
LSMSNDHAM107
XWSAQ23A1CM
如果您不想要空行,我们可以使用:
$ cut -b80-95 File | grep '[^[:space:]]'
Description 4
LSMSNDHAM107
XWSAQ23A1CM
在修订后的问题中,表格前后有一段文字如下:
$ cat file2
A. warrants and represents to that has full legal title to the listed below and/or mobile in which the is contained , free and clear of all liens and esffcswes and cdwswys such title, and any regqsdfon and documents (as
applicable), to effective as of the date of the removal or of the (as applicable).
Description
Description 1. Description 2 Description 3 Description 4
Amount ($)
LSMSNDHAM107 25,000
Variable length value DCX12300 1
XWSAQ23A1CM
VariableLengthValue 1 4,000
B. In cases where will be removing the will, at its expense, arrange for removal of the during normal business hours or on aschedule.
我们可以从段落之间的表格中选择第4列,如下所示:
$ awk 'f && /^[[:alnum:]]/{exit} f{s=substr($0, 80, 15)} f && s~/[[:alnum:]]/{print s} /Description 4/{f=1}' file2
LSMSNDHAM10
XWSAQ23A1C
工作原理:
代码使用变量f
作为标志:当我们处于我们想要打印的行范围内时,它是一个(true),而在其他地方则为零(false)。
f && /^[[:alnum:]]/{exit}
如果f
为真且当前行以字母数字字符开头,那么我们已到达表的末尾,我们exit
该程序。
f{s=substr($0, 80, 15)}
如果f
为真,那么我们会在变量s
中保存当前行的字符80到95。
f && s~/[[:alnum:]]/{print s}
如果f为真且变量s
包含任何字母数字字符,则我们打印s。
/Description 4/{f=1}
如果当前行与正则表达式Description 4
匹配,则我们将f
设置为1。
按此顺序保留这些命令非常重要。