Grep

如何grep兩個逗號之間的文本

  • July 17, 2021

我在文本文件中有一個字元串,我想 grep 電子郵件地址,但它不起作用

26,2,12,1,1,0,1,0,12,20,648130864.573339,,"iCloud - Device Locator",,,69FFBE2F-6626-4A4B-8A78-BF7D06DE59C7,7F223B27-9588-4719-81B9-074666A76E1D,com.apple.accountsd,youremail@yahoo.com,

我嘗試:grep -Eo "\b@'[^']*'"但它不起作用

我需要輸出:yourremail@yahoo.com

P/s:也許該欄位不是第 19 位,但電子郵件始終位於行尾

如果電子郵件始終是第 19 項,則可以使用

cut -d, -f 19

-d,表示“,”是分隔符,-f 19表示您需要第 19 個欄位。

更新:

如果電子郵件始終是該行中的倒數第二項(注意後面有逗號),您可以使用sed

sed -e 's/.*,\(.*\),/\1/'

使用csvcut來自csvkit

csvcut -c 19 file

或者,您可以嘗試嘗試awk是否始終是倒數第二個欄位:

awk -F, '{print $(NF-1)}'

如果最後一個欄位包含逗號,這將不起作用。

引用自:https://unix.stackexchange.com/questions/658687