我有一个平面文件,其中包含系统中存在的软件包列表。我想知道包是否
batch
开头),serv
结尾)d
结尾)web
结尾)我为此写了这个bash脚本:
grep serv$ pack_list.txt > serv_list.txt
grep d$ pack_list.txt > daemon_list.txt
grep ^batch pack_list.txt > batch_list.txt
grep web$ pack_list.txt > web_list.txt
grep -v serv$ pack_list.txt | grep -v d$ | grep -v ^batch | grep -v web$ > uncat_list.txt
虽然它满足了我目前的要求并且没有花费太多时间,但我不禁想知道其他语言是否会成为这类操作的更好选择。
---编辑 -
示例输入为:
fileserv
batch_file_processor
userweb
processord
每个人都会进入另一个档案。
澄清我在寻找的东西:我正在寻找一种语言,这种处理方式比语法支持更好:
grep
之类的命令。if
条件都可以。 有些事情:
switch line.match($1):
case (pattern1):
...
case (pattern2):
...
有什么建议吗?
答案 0 :(得分:2)
单个Awk流程可以更好地做到这一点,对于与您的模式匹配的每一行并适当地重定向输出:
Stackoverflow