簡體   English   中英

如何過濾出長度為8且以.com結尾的文本文件行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM