如果列中的一个字符串相等,则使用 AWK 打印特定文本
If one string in column is equal, print specific text wit AWK
我有问题,你能帮我吗?
输入:
LIS
LOP
LOP
LAT
如果输入中的一个或多个字符串 "LIS" 打印一行 "THERE IS LIS" 如果有 "LOP" 或 "LAT" 的组合,没有 "LIS", 打印 "THERE IS LOP" 如果有所有字符串 "LAT" 打印 "THERE IS ONLY LAT"。
谢谢
awk解决方案:
check_column.awk 脚本:
#!/bin/awk -f
/LIS/{ print "THERE IS LIS"; exit }
[=10=]!~/(LOP|LAT)/{ print "No matches"; exit }
/LOP/{ lop++ }/LAT/{ lat++ }
END{
if (lop || lat) {
printf "%s\n", (lat==NR)? "THERE IS ONLY LAT":"THERE IS LOP"
}
}
用法:
示例文件 file1
:
LIS
LOP
LOP
LAT
awk -f check_column.awk file1
THERE IS LIS
------------
示例文件 file2
:
LOP
LOP
LAT
LAT
awk -f check_column.awk file2
THERE IS LOP
------------
示例文件 file3
:
LAT
LAT
LAT
awk -f check_column.awk file3
THERE IS ONLY LAT
我有问题,你能帮我吗?
输入:
LIS
LOP
LOP
LAT
如果输入中的一个或多个字符串 "LIS" 打印一行 "THERE IS LIS" 如果有 "LOP" 或 "LAT" 的组合,没有 "LIS", 打印 "THERE IS LOP" 如果有所有字符串 "LAT" 打印 "THERE IS ONLY LAT"。 谢谢
awk解决方案:
check_column.awk 脚本:
#!/bin/awk -f
/LIS/{ print "THERE IS LIS"; exit }
[=10=]!~/(LOP|LAT)/{ print "No matches"; exit }
/LOP/{ lop++ }/LAT/{ lat++ }
END{
if (lop || lat) {
printf "%s\n", (lat==NR)? "THERE IS ONLY LAT":"THERE IS LOP"
}
}
用法:
示例文件 file1
:
LIS
LOP
LOP
LAT
awk -f check_column.awk file1
THERE IS LIS
------------
示例文件 file2
:
LOP
LOP
LAT
LAT
awk -f check_column.awk file2
THERE IS LOP
------------
示例文件 file3
:
LAT
LAT
LAT
awk -f check_column.awk file3
THERE IS ONLY LAT