我有一个包含两列数据的文本文件,第一列是站点ID,第二列是值。如果该值等于0,我想将相应的站点ID发送到新文件。如果该值等于15,我想什么都不做。
文字档案:
K5B2 0
K6B0 0
K6L4 0
K7W4 0
K8B0 0
K8G2 0
K8W2 0
KABE 15
KACK 15
KACY 15
KADW 15
KAFJ 15
KAFN 15
KAGC 15
KAKQ 15
KALB 15
KANP 0
KAOO 15
KAPG 15
KAQW 15
KART 15
KASH 15
KAUG 15
尝试过的脚本:
badcheck1=`00z_reingest_out_tmp | awk '{print $2}'`
badsitescheck=`00z_reingest_out_tmp | awk '{print $1}'`
if [ ${badcheck1} -eq "0" ];
then
echo "${sites} is fine"
else
echo "${badsitescheck}" >> out
fi
答案 0 :(得分:3)
您可以使用这个简单的awk脚本:
awk '$2 == 0 { print $1 > "file.out" }' file
答案 1 :(得分:1)
您可以尝试:
cat test.txt | awk '$2==0{print$1}' > export.txt
答案 2 :(得分:0)
如果您正在寻找可以添加其他脚本的内容,请使用以下内容。我经常在执行支票时执行多项操作。
for i in $( cat 00z_reingest_out_tmp ); do
if [[ ${i/#* } = 0 ]]; then
echo "${sites} is fine"
else
echo "${i/% *}" >> out
done
我希望这会有所帮助。
注意:我不确定你在哪里获得了$ {sites},但我把它留在那里以防你在代码中早先定义它。
注意:我喜欢@ anubhava上面针对单行实现的回答,但它似乎与您在脚本示例中尝试的完全不符。