我想要的是提取具有以下格式的表的列表
+---------+---------------+-------------+
| Region | Parent Region | Description |
+---------+---------------+-------------+
| region1 | None | |
| region2 | None | |
+---------+---------------+-------------+
我想从区域中获取区域 1、区域 2。
到目前为止我尝试过的是
$ cat file |cut -d'+' -f1|cut -d'|' -f2
Region
region1
有什么想法吗?
返回的sed命令
最佳答案
我不确定 sed
是否是解决此问题的正确工具,而不是原生数据库工具,但你可以:
sed -nE '3,$ s/^\|[[:blank:]]*([^[:blank:]|]*).*/\1/p' file.txt
3,$
只做第3行到最后的操作^\|[[:blank:]]*([^[:blank:]|]*).*
在开头匹配|
然后是空格(如果有的话),捕获的组包含所需的部分在替换中我们使用了第一个(唯一的)捕获组,
\1
示例:
$ cat file.txt
+---------+---------------+-------------+
| Region | Parent Region | Description |
+---------+---------------+-------------+
| region1 | None | |
| region2 | None | |
+---------+---------------+-------------+
$ sed -nE '3,$ s/^\|[[:blank:]]*([^[:blank:]|]*).*/\1/p' file.txt
region1
region2
关于linux - 从特定列获取特定行的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38923533/