bash - 如何在 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
解决方案
像 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
推荐阅读
- androidx - 添加 androidx 生物识别 API 时出现 proguard 错误(“androidx.biometric:biometric:1.0.1”)
- html - 如何为此添加填充
- amazon-web-services - 将 AWS Application Load Balancer 的可见性更改为内部负载均衡器
- css - 在指令的“主机”属性中动态设置的类未应用于角度 8 中的父模板
- c# - 绕 3 轴旋转时出现云台锁定问题
- java - RetryTemplate 只执行一次
- reactjs - React 组件总是恢复到数组中的最后一项
- selenium-webdriver - Selenium-在 div 弹出窗口中向下滚动
- html - 如何在css中创建两个形状的联合并将阴影应用于最终形状?
- x86-16 - 使用代码段和指令指针生成指令的地址