我有一个表输出,如下所示:
col1 col2 col3 col4
sample1 sample value 1 col3value colvalue4
sample1 sample value 2 col3value colvalue4
sample1 sample value 3 col3value colvalue4
sample1 sample value 4 col3value colvalue4
我想提取col2值并从表中打印出来。
sample value 1
sample value 2
sample value 3
sample value 4
有人可以帮我解析表格并打印存在于它们之间的空格的值吗?
答案 0 :(得分:0)
您可以使用awk
:
awk 'NR > 1 {print $2" "$3" "$4}' /your/path/to/file.txt
答案 1 :(得分:0)
你可以这样做
while IFS=$'\t' read col1 col2 col3 col4; do echo $col2; done < <(cat filepath.ext)
这假设您的输出有选项卡作为分隔符
答案 2 :(得分:0)
我不知道,如果你的表包含制表符(\ t)。因此,我想向您介绍一种方便且可扩展的方式来提取您正在寻找的内容。 sed,流编辑器是一个很好的命令行工具。
cat the-table.csv | sed -e "s/^[^ ]\+[ ]\+//" -e "s/[ ]\+[^ ]\+$//" -e "s/[ ]\+[^ ]\+$//
<强>解释强>
完整示例:
#!/bin/bash
cat <<FILE | sed -e "s/^[^ ]\+[ ]\+//" -e "s/[ ]\+[^ ]\+$//" -e "s/[ ]\+[^ ]\+$//"
col1 col2 col3 col4
sample1 sample value 1 col3value colvalue4
sample1 sample value 2 col3value colvalue4
sample1 sample value 3 col3value colvalue4
sample1 sample value 4 col3value colvalue4
FILE
<强>输出强>
col2
sample value 1
sample value 2
sample value 3
sample value 4