从特定列获取特定行的值

get the values of a specific line from a specific column

我想要的是提取一个table的列表,格式如下

+---------+---------------+-------------+
| Region  | Parent Region | Description |
+---------+---------------+-------------+
| region1 | None          |             |
| region2 | None          |             |
+---------+---------------+-------------+

我想从区域获取区域 1、区域 2。

到目前为止我尝试过的是

$ cat file |cut -d'+' -f1|cut -d'|' -f2

 Region  

 region1 

有什么想法吗?

sed 命令 returns

我不确定 sed 是否是正确的工具而不是本地数据库工具,但是你可以:

sed -nE '3,$ s/^\|[[:blank:]]*([^[:blank:]|]*).*//p' file.txt
  • 3,$ 只从第 3 行开始操作直到结束

  • ^\|[[:blank:]]*([^[:blank:]|]*).* 在开头匹配 |,然后是空格(如果有),捕获的组包含所需的部分

  • 在替换中我们使用了第一个(唯一的)捕获组,</code></p></li> </ul> <p><strong>示例:</strong></p> <pre><code>$ cat file.txt +---------+---------------+-------------+ | Region | Parent Region | Description | +---------+---------------+-------------+ | region1 | None | | | region2 | None | | +---------+---------------+-------------+ $ sed -nE '3,$ s/^\|[[:blank:]]*([^[:blank:]|]*).*//p' file.txt region1 region2