首页 > 解决方案 > 如何在 bash 脚本中创建标记化工具?

问题描述

我需要创建一个工具来标记输入列表。我将通过以下方式提供一个包含子域列表的文本文件:

abc.xyc.kkk.com
hjk.pol.lll.kkk.com
...

并且输出需要是:

abc
xyz
kkk
hjk
...

分隔符是' .'

我已经尝试了以下代码,它似乎不起作用:

#!/bin/bash

STRING= cat $1
IFS='.' read -ra VALUES <<< "$STRING"

## To print all values
for i in "${VALUES[@]}"; do
    echo $i
done

标签: bashtoken

解决方案


像 in这样的东西awk可以完成这项工作:

awk 'BEGIN {FS="."; RS=" "} {$NF=""} 1'

这是测试:

$ echo abc.xyc.kkk.com hjk.pol.lll.kkk.com |awk 'BEGIN {FS="."; RS=" "} {$NF=""} 1'
abc xyc kkk
hjk pol lll kkk

推荐阅读