我需要收集 A、B、D、E 列中至少有一个值不等于 0(零)的行。
下面一张是数据:
A B C D E G
ES-N . | 0 0 12 | 0 0 100
SES-N . | 1 0 10 | 0 0 10
UAS-N . | 0 0 10 | 0 0 10
CSS-N . | 0 0 10 | 0 5 10
BBE-N . | 0 0 15 | 0 0 125
Run Code Online (Sandbox Code Playgroud)
所需输出:
A B C D E G
SES-N . | 1 0 10 | 0 0 10
CSS-N . | 0 0 10 | 0 5 10
Run Code Online (Sandbox Code Playgroud)
你能提供一个可以在unix平台上工作的shell脚本吗?
我在下面做了但没有消除“0”,因为 C 和 G 列。
#lin is the count of line in the file
for (( i=1; i<=$lin; i++ ));
do
sed -n -e ""$((ini + 1)),$fin"p" /file
egrep '1|2|3|4|5|6|7|8|9' /file1
if [[ $? -eq 0 ]]
then
sed -n -e ""$ini"p" /file
Run Code Online (Sandbox Code Playgroud)
使用 awk:
awk -n '$4 !=0 || $5 != 0 || $8 != 0 || $9 != 0 {print $0}' filename
Run Code Online (Sandbox Code Playgroud)