不知道如何在同一列的兩組資料之間進行迭代,所以假設我有一個包含所有泰坦尼克號乘客的 CSV 檔案,我想提取 20 到 29 歲之間和 40 到 49 歲之間的人和人誰會說英語和其他語言可以說法語,因為兩個資料都在同一列中非常具有挑戰性。egrep 似乎沒有只有 AND ,所以我正在努力尋找如何去做
所以我正在嘗試的是(來自昏迷分隔的csv)第三列是年齡,第八列是語言
(盡管我知道使用一些 sed/awk 等可能更容易解決我需要它來在 egrep 中訓練海豚)
egrep "^.*,.*,[2-0][0-9],.*,.*,[eng.*]" titanic-passengers.csv
提前致謝。
uj5u.com熱心網友回復:
您應該使用[^,]*來匹配單個列。.*將匹配多個列。
匹配 20-29 使用2[0-9];匹配 40-49 使用4[0-9]。然后,您可以將它們與[24][0-9].
您不需要[]圍繞語言,這是為了匹配括號中的任何字符的單個字符。
grep -E '^[^,]*,[^,]*,[24][0-9],[^,]*,[^,]*,[^,]*,[^,]*,eng' titanic-passengers.csv
uj5u.com熱心網友回復:
也許是這個?
grep -E '^[^,]*,[^,*],[24][0-9],[^,]*,[^,]*,[^,]*,[^,]*,[^,]*( english|english )[^,]*' titanic-passengers.csv
@Barmar 很好地解釋了其他模式,所以我將解釋“語言”部分。
為了確保匹配至少比英語多一種語言,您需要在單詞之前或之后強制一個空格english。該OR運算子可以表示為(pattern1|pattern2)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/365312.html
上一篇:管道檔案路徑到ImageJ
