如何提取文件中所有双引号内的域名?cut命令解决方案
提取文件中所有双引号内的域名
嘿,我明白你的问题了!用cut只拿到第一个域名很正常——因为cut是按行分割处理的,而你的所有域名都挤在同一行里,它只能取出第一个被双引号分隔的字段。给你几个简单有效的方法,能一次性提取所有域名:
方法1:用grep提取并去引号
grep -o '"[^"]*"' file.txt | tr -d '"'
- 解释:
grep -o会只输出匹配到的部分,"[^"]*"这个正则能精准匹配每一对双引号及其内部的内容;接着用tr -d '"'把双引号去掉,只留下纯域名。
方法2:用awk循环提取字段
awk -F'"' '{for(i=2;i<=NF;i+=2) print $i}' file.txt
- 解释:把双引号
"设为分隔符后,所有域名都在偶数位置的字段里(第2、4、6...位),用循环逐个打印这些字段就行,直接得到干净的域名。
方法3:用sed替换提取
sed 's/[^"]*"\([^"]*\)"[^"]*/\1\n/g' file.txt | sed '/^$/d'
- 解释:第一个sed命令把每段双引号内的内容提取出来并换行,第二个sed命令去掉可能产生的空行,最终得到所有域名列表。
内容的提问来源于stack exchange,提问作者Joel Deleep
相关产品推荐
相关产品推荐

