新手求指點:
當前目錄下有多個文本檔案(約一千萬行)。已知提取含某個特定字串(比如“穩步推進”)的行并輸出,應當鍵入以下指令:
grep "穩步推進" ./* > 穩步推進.tsv
問題是,除了"穩步推進",任務需要單獨提取的特定字串還有“鞏固”、“提高”等,字串數量近千個。當然,可以分別執行:
grep "鞏固" ./* > 鞏固.tsv
grep "提高" ./* > 提高.tsv
……
確實太麻煩。現在我把所有需逐個提取的特定字串寫入了a.txt,如下
穩步推進
鞏固
提高
……
想要按照類似windows里.bat在linux上以批處理方式完成以上任務,求指點。
uj5u.com熱心網友回復:
將引數拼接成grep正則運算式就行了pattern=""
while read line
do
echo $line
if [ ${#pattern} -eq 0 ]
then
echo "1${pattern}"
pattern="${line}"
else
echo "2${pattern}"
pattern="${pattern}|${line}"
fi
done < a.txt
echo "grep -E \"${pattern}\" ./*"
grep -E "${pattern}" ./*
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/94619.html
標籤:系統維護與使用區
上一篇:Linux無秘鑰配置
下一篇:centos中獲取檔案權限
