我有一百萬域名中name.txt
如何過濾長度爲8並以.com結尾的文本文件的行?
hello.com
abc.com
gogogo.us
goodbye.me
...
...
列表我如何管只有域名與8個字符(包括.com
),只有在.com
到names_new.txt
結束?
我正在尋找一個簡單的命令,而不是腳本或任何東西。
我有一百萬域名中name.txt
如何過濾長度爲8並以.com結尾的文本文件的行?
hello.com
abc.com
gogogo.us
goodbye.me
...
...
列表我如何管只有域名與8個字符(包括.com
),只有在.com
到names_new.txt
結束?
我正在尋找一個簡單的命令,而不是腳本或任何東西。
嘗試
egrep "^[a-z][a-z][a-z][a-z]\.com$" name.txt > names_new.txt
grep
就是抓住模式匹配的第一個工具:
egrep -x '[a-z]{4}\.com' name.txt > newname.txt
用AWK。域名由.
分成字段。
由於.com
增加了4個字符,因此第一個字段的長度爲4。
第二個字段應該包含com
。
當兩個條件都滿足時,打印該行。
cat name.txt |awk -F. '((length($1)==4)&&($2=="com")){print;}' > names_new.txt
注:該行可能發現誤報,如果你有子域,如:mail.com.nz
可能有破折號或數字的域名。
-i強制egrep匹配,無論大小寫。
egrep -i "^[a-z0-9-]{4}\.com$" name.txt > names_new.txt
[UUoC](http://partmaps.org/era/unix/award.html)。這個awkish版本將是'awk -F。 '長度($ 1)== 4 && $ 2 ==「com」&& NF == 2'name.txt> names_new.txt'這也可以避免誤報 – 2013-03-16 20:37:36