[英]How do I filter out lines of a text file that have length of 8 and ends in .com?
我在name.txt
列出了一百萬個域名
hello.com
abc.com
gogogo.us
goodbye.me
...
...
如何僅將8個字母(包括.com
)且僅以.com
結尾的域名通過管道傳遞給names_new.txt
?
我在尋找一個簡單的命令,而不是腳本或其他任何東西。
grep
是第一個用於模式匹配的工具:
egrep -x '[a-z]{4}\.com' name.txt > newname.txt
嘗試
egrep "^[a-z][a-z][a-z][a-z]\.com$" name.txt > names_new.txt
使用Awk。 域名被分割.
進入領域。
第一個字段的長度為4,因為.com
添加了另外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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.