テキストファイルでアスタリスク(*)を検索して新しいディレクトリにコピーしますか?

テキストファイルでアスタリスク(*)を検索して新しいディレクトリにコピーしますか?

私のディレクトリには5000のテキストファイルがあります。各テキストファイル名はプレフィックスで始まります。8月00日*(例 - OG0017774.log)

ファイル内にアスタリスク(*)を含む.logファイルを新しいディレクトリにコピーする必要があります。

文書内容 -

cat OG0017774.log

M0~b904dbe442e0eb658d229076cacb9ef6 M1~9edeedcb1f4f315c4689bacd8075222f 0.000035**
M0~b904dbe442e0eb658d229076cacb9ef6 M2~aeba83b564ee32e0ef1a8321c8d930f4 0.000671**
M0~b904dbe442e0eb658d229076cacb9ef6 M3~006a376da2fba16185ce424bf4cba983 0.000055**
M0~b904dbe442e0eb658d229076cacb9ef6 M4~e564dbfbbbe8d1f7d9d8c8e4da202943 0.000015**
M0~b904dbe442e0eb658d229076cacb9ef6 M5~2abe603e8fee2fcb08b7fb818957e0aa 0.000006**

ご提案いただきありがとうございます。

このコードを試してみると、現在のディレクトリ内のすべてのファイルが新しいディレクトリにコピーされます。

*を含むすべてのテキストファイルをコピーしたいです。

#!/bin/bash
KEYWORD_PATTERN='*'
find . -type f |
while read FNAME
do
    if grep -Ew -q "$KEYWORD_PATTERN" $FNAME
    then
        KEYWORD=$(grep -Ew -o "$KEYWORD_PATTERN" $FNAME)
        cp -r $FNAME keywords/$KEYWORD
    fi

done

ベストアンサー1

このようなことがある場合はどうすればよいですか?

for i in OG00*; do 
    if grep -q -F '*' "$i"; then 
        mv "$i" ../keywords/
    fi
done

おすすめ記事