【发布时间】:2020-10-15 10:15:14
【问题描述】:
我将查询结果输出到一个 bash 变量中,存储为一行。
-------------------------------- | NAME | TEST_DATE | ----------------
--------------------- | TESTTT_1 | 2019-01-15 | | TEST_2 | 2018-02-16 | | TEST_NAME_3 | 2020-03-17 | -------------------------------------
我想忽略列名(NAME | TEST_DATE) 并将每个名称和 test_date 的实际值存储为数组中的元组。 所以这是我在想的逻辑,我想在两个'|'之间提取第三个字符串人物。这些字符串以逗号分隔,当遇到空格时,我们开始数组中的下一个元组。
预期输出:
array=(TESTTT_1,2019-01-15 TEST_2,2018-02-16 TEST_NAME_3,2020-03-17)
感谢任何帮助。谢谢。
【问题讨论】:
-
不清楚为什么
NAME,TEST_DATE不在结果中。另外,你有什么尝试,请在这里放一些代码...... -
@Luuk 我已经编辑了这个问题以使其现在更清楚,也使用了我拥有的部分输出。我正在尝试使用 awk -F "|" 来实现这一点'{print $5}' 但不清楚如何循环 $5 以后的所有字符串。我也在使用 if [[ "$a" =~ [A-Za-z0-9] ]];然后回显“添加到数组”; elif [[ "$a" =~ [----] ]];然后回显“退出”;菲
-
从 5 开始打印:
awk -F "|" '{ for(i=5; i<=NF; i++){ print $i }}'
标签: bash awk sed text-processing