2016-06-10 83 views
1

我有一個包含兩列數據的文本文件,第一列是站點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 

回答

3

你可以使用這個簡單的awk腳本:

awk '$2 == 0 { print $1 > "file.out" }' file 
1

你可以試試:

cat test.txt | awk '$2==0{print$1}' > export.txt 
+0

無用(錯誤)使用'貓'... – twalberg

0

如果您正在尋找可以添加腳本的東西,可以使用以下方法。當我執行檢查時,我經常想要執行多個操作。

for i in $(cat 00z_reingest_out_tmp); do 
    if [[ ${i/#* } = 0 ]]; then 
     echo "${sites} is fine" 
    else 
     echo "${i/% *}" >> out 
done 
  • $()執行命令,並使用作爲輸入輸出至命令
  • $ {I /#*}開始於開始和除去圖案(除去第一個字 「*」 和下面的空間 「」 )
  • $ {I /%}開始在結束和刪除模式(空格 「」 及以下單詞 「」)

我希望這有助於。

注意:我不確定您在哪裏獲得$ {sites},但是我將它留在那裏以防您在代碼中定義它。

注意:我喜歡@ anubhava上面的單行實現的答案,但它似乎並不完全適合您在腳本示例中想要做的。

相關問題