如何使用 Linux 命令提取特定列中包含空白的行
How to extract lines containing blank in a specific column with Linux command
示例:
aa\tab\tac\tad\tae
ba\tbb\tbc
ca\tcb\tcc
da\tdb\tdc\tdd
预期输出:
ba\tbb\tbc
ca\tcb\tcc
我想用 linux 命令提取第 4 列中包含空白的行。如果你知道命令,可以告诉我吗?
你可以使用cut,用""作为分隔符,检查字段4是否为空。然后使用 grep -v 检查尾随的“”是否存在。
在 If 语句中,您可以获得结果。
text='aa\tab\tac\'
if [[ -z $(echo $text | cut -d \ -f 4 | grep -v \\$) ]]; then
if[[ -z $(echo $text | grep -v \\$) ]]; then
echo $text
else
echo 'Text has a slash at the end'
fi
else
echo 'Not valid input'
fi
使用awk
$ awk -F"\" '{if(=="") print}' input_file
ba\tbb\tbc
ca\tcb\tcc
示例:
aa\tab\tac\tad\tae
ba\tbb\tbc
ca\tcb\tcc
da\tdb\tdc\tdd
预期输出:
ba\tbb\tbc
ca\tcb\tcc
我想用 linux 命令提取第 4 列中包含空白的行。如果你知道命令,可以告诉我吗?
你可以使用cut,用""作为分隔符,检查字段4是否为空。然后使用 grep -v 检查尾随的“”是否存在。 在 If 语句中,您可以获得结果。
text='aa\tab\tac\'
if [[ -z $(echo $text | cut -d \ -f 4 | grep -v \\$) ]]; then
if[[ -z $(echo $text | grep -v \\$) ]]; then
echo $text
else
echo 'Text has a slash at the end'
fi
else
echo 'Not valid input'
fi
使用awk
$ awk -F"\" '{if(=="") print}' input_file
ba\tbb\tbc
ca\tcb\tcc