2012-05-12 123 views

回答

1

以從以前的答案一些代碼,您可以使用此代碼:

while read word; do 
    if [[ $word =~ ^(....)(.)$ ]]; then 
     filename="yy/${BASH_REMATCH[1]}.txt" 
     letter=${BASH_REMATCH[2]} 
     [[ -f $filename ]] && sed -i.bak -n "/^ *csh.*$letter/p" $filename 
    fi 
done < xx.txt 
+0

非常感謝您的回答。我想在原文件中刪除其他以「csh」開頭的行(例如:刪除其他行,以「csh」開頭,除了「A」),而不是打印。我怎樣才能改變你的代碼? – darwin

+0

那裏請檢查我上面編輯的答案。 – anubhava

+0

現在它不工作。 – darwin

1

您需要從前面的問題中提供任何信息,它提供了這個問題的規範。

這可能會爲你工作:

awk '$3 == "A"' inputfile 

你可以,如果他們cat ED連同水珠,也許*替換「inputfile中」,爲了處理多個文件。

沒有一個清晰的指示你如何處理多個文件,這是我能做的最好的。

1

這可能會爲你工作:

sed '/^ *chs.*A/!d' file 
+0

此代碼不能正常工作。我以前的問題中的代碼工作正常。謝謝。 – darwin

+0

如果你想要的是與上一個問題相反的話,那麼:'sed's |^*(。* \)\(。\)$ | sed -i.bak「/^* csh。* \ 2/!d「yy/\ 1.txt |' xx.txt | sh'應該符合法案。注: '!'否定條件。 – potong