grep快速過濾檔案中特定的某種型別的資料

2021-10-14 02:00:21 字數 631 閱讀 7504

有這麼乙個需求,需要將有好幾千條查詢語句及其執行結果的乙個檔案中中文名換成乙個中文加乙個星號的形式(如:李*),其中有一部分資料已經是這種形式的,有一部分資料是證件號碼、**號碼型別的等等,類似下面的測試檔案,我們需要做的是將中文名上面的sql語句過濾出來,且排除掉已經帶有星號的結果的sql語句。如果手動一條一條地將每乙個這樣的sql找出來將耗費大量的時間,有沒有簡便的方法呢?

考慮使用grep來實現,**如下:

#先過濾掉帶*的行,剩下的過濾出帶"姓名"的及其上的4行(剔除除姓名外的其他型別的資料),然後從過濾出的資料中過濾含有"select"的行

cat test.txt |grep -v ".*\*.*"|grep -b 4 "姓名"|grep "select">a.txt

檢視最終的資料,已經將需要的資料全都提取出來了:

tips:grep過濾之前或者之後的幾行使用引數為:

-a 《行數》: 顯示符合條件的行及其後的若干行

-b 《行數》: 顯示符合條件的行及其前的若干行

Python快速過濾Numpy陣列中特定元素的方法

對於乙個numpy陣列,有的時候我們想選取或者剔除某些符合條件的元素值,卻突然發現除了一些特定的函式,如numpy.minimum 等,或者乙個巢狀迴圈之外束手無策。其實這裡有乙個trick1,可以使 有效而簡潔。讓我們來到乙個場景中 我們有乙個名為saliency的灰度影象陣列,用來表示一張中受關...

grep命令 查詢包含某內容的檔案

linux系統中grep命令是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹 配的行列印出來。grep全稱是global regular expression print,表示全域性正規表示式版本,它的使用許可權是所有使用者。grep家族包括grep egrep和fgrep。egrep和...

grep 不查詢特定檔案或資料夾的方法

method 1 egrep irn exclude tags exclude cscope.exclude dir repo exclude form exclude.list pattern method 2 egrep irn pattern egrep v tags cscope repo ...