2012-05-12 24 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"で始まる "csh"以外の行を削除します)。コードを変更するにはどうすればよいですか? – darwin

+0

上記の私の編集した答えを確認してください。 – anubhava

+0

これは動作しません。 – darwin

1

この仕様の前の質問の情報を引き継ぐ必要があります。

これはあなたのために働く可能性があります

awk '$3 == "A"' inputfile 

あなたは、彼らが一緒にcat編であるかのように、複数のファイルを処理するためには、おそらく*、グロブと「入力ファイル」を置き換えることができます。

複数のファイルをどのように処理したいかを明確に示すことなく、それが私ができることです。これはあなたのために働くかもしれない

1

前回の回答からいくつかのコードを取る
sed '/^ *chs.*A/!d' file 
+0

このコードは動作しません。以前の質問のコードが正しく動作していました。ありがとう。 – darwin

+0

もしあなたが望むものが前の質問と逆であれば、 'sed 's | * * \(。* \)\(。\)$ | sed -i.bak"/^ * csh。* \ 2/!d "yy/\ 1.txt |" | xx.txt | shは法案に適合しなければならない。 N.B. '! 'は条件を否定します。 – potong

関連する問題