shell脚本单词去重多个文件

例如要求如下:

  • 有多个txt文件,每个文件内有多行单词
    中间为英文的”,”,或者中文的”,”逗号作为分隔符。
world,世界
set,设置
good,好,商品
....
  • 将这些文件汇总去除重复的单词,并输出到一个新的文件内
  • 要求可以不区分大小写

实现

#! /bin/bash
#------------------------------------------------------------------------------
# Filename:    filterWords.sh
# Usage:       ./filterWords.sh ~/test/
# Version:     1.0
# Date:        2018-04-04
# Author:      vincent
# Email:       N/A
# Description: 此脚本用于过滤多个文件的重复单词,保留唯一的单词,并输出结果到新的文件
#              忽略大小写,如果单词重复,随机保留释义
#              支持格式:
#                  set,设置        #英文标点
#                  set,设置       #中文标点
#                  set,设置,集合   #支持多个“,”,但是默认第一分隔符前面为单词
#                  SeT,设置        #支持不许分大小写
# Notes:       N/A
#-------------------------------------------------------------------------------declare folderPath=$1
declare currentTime=$(date +%F"-"%H"-"%M"-"%S)
declare outputPath="${currentTime}_words.txt"
declare wordsCounts=0outputMsg()
{if [ $1 -ne 0 ]thenecho $2exit 1fi
}# 检验路径是否为空
if [ -z $folderPath ]
thenfolderPath="."
else# 检验路径是否存在if [ ! -d $folderPath ]thenecho "${folderPath} is not existed !"exit 1fi
fifileList=$(find $folderPath -type f -name "*.txt")
outputMsg $? "Find txt file failed!"
if [[ -z $fileList ]]
thenecho "No txt files are found."exit 1
fi# 支持英文的“,”或者中文的“,”分隔符,忽略大小写
# 这里在复制代码的时候,注意格式,最好自己缩短为一行,否则很容易出错
# 设置两种分隔符
awk -F'[,|,]' 'BEGIN{key="";}{key=tolower($1);words[key]=$0}END{for(i in words) print words[i]}' $fileList > $outputPath
outputMsg $? "Filter words failed!"wordsCounts=$(wc -l $outputPath)
echo "Words counts: "
echo $wordsCounts

shell脚本单词去重多个文件相关推荐

  1. crontab里shell脚本将top信息写入文件

    crontab里shell脚本将top信息写入文件: 注: 1.top -n 1代表执行1次退出(默认top是不退出的),-d 1代表每1秒执行1次 2.crontab里需加/bin/bash # c ...

  2. linux配置定时删除日志文件,Linux使用shell脚本定时删除历史日志文件

    Linux使用shell脚本定时删除历史日志文件,文件,小时,时间,目录,脚本 Linux使用shell脚本定时删除历史日志文件 易采站长站,站长之家为您整理了Linux使用shell脚本定时删除历史 ...

  3. linux shell脚本自动批量解压文件

    单个文件解压很简单,批量不确定目录的压缩包呢?解压到原路径?解压后删除原压缩包?本脚本可一键解决以上所有问题 linux shell脚本自动批量解压文件 脚本免费下载地址: 传送门https://do ...

  4. linux shell 获取表,bash - 如何获取shell脚本中目录中的文件列表?

    bash - 如何获取shell脚本中目录中的文件列表? 我试图使用shell脚本获取目录的内容. 我的脚本是: for entry in `ls $search_dir`; do echo $ent ...

  5. 分享一个有趣的shell脚本--单词及字母去重排序案例

    概述 今天主要分享一个用shell脚本来实现单词及字母去重排序案例,下面一起来看下吧~ 需求 1.按单词出现频率降序排序! 2.按字母出现频率降序排序! 相关文本: the squid project ...

  6. shell脚本删除linux中的文件

    ❤️强烈推荐人工智能学习网站❤️ 在linux下的开发中,经常可能遇到磁盘满的情况,前面介绍了du命令.但有些情况下,这还不够.有些后台抓包的进程一直在跑,随时都要防止磁盘满,于是我们写一个shell ...

  7. Linux Shell脚本去掉几类常见文件中的注释

    Linux操作系统中去掉各类文件中的注释这个功能比较常用,通常用在查看一个较长的文件,又不想看注释的情况.通常这些文件包括C语言编写的*.c.*.h文件.cpp文件.*.xml文件.*.sh shel ...

  8. Shell脚本攻略04-玩转文件描述符及重定向

    概述 文件描述符是与文件输入.输出相关联的整数.它们用来跟踪已打开的文件. 最常见的文件描述符是stdin. stdout和stderr. 我们甚至可以将某个文件描述符的内容重定向到另一个文件描述符中 ...

  9. shell脚本实践:自动清理文件,以时间方式形成路径的图片或者是Excel、pdf等文件

    目录 1.背景: 2.shell脚本开发需求: 3.shell脚本开发过程: 4.shell脚本开发结果: 5.shell脚本开发结果验证 总结: 1.背景: 在日常运维中遇到一个业务系统,系统中有一 ...

最新文章

  1. python爬取站长素材网页图片保存到ppt中
  2. labview运行excel宏_LabVIEW编程实例:电子表格文件的读写操作方法
  3. TCP/IP协议族(一) HTTP简介、请求方法与响应状态码
  4. vs2010无法查看自定义的普通变量(CXX0017:错误:没有找到符号)
  5. python虚拟环境中文件分部_Python之虚拟环境管理
  6. DataContractJsonSerializer类
  7. uk码对照表_这份中外衣服鞋码尺寸对照表,请收好!
  8. Java求出1000内的完数
  9. CRC校验码计算过程
  10. 【DP专题】LintCode刷题笔记
  11. 计算机网络从使用对象上划分为,计算机网络练习题卷1-2章.doc
  12. 大数据与数据分析概述
  13. Docker部署homeassitant
  14. 字符串函数strtolower解析
  15. 神经元网络技术有限公司,神经网络网站
  16. 30M DEM数据处理成图
  17. Qt—设计颜色编辑选取对话框
  18. Visual Studio 2015正式版/产品密钥
  19. 计算机应用基础实验教程练习题答案,计算机应用基础实验教程答案.doc
  20. 微机原理DOSBox安装与使用

热门文章

  1. 逐鹿工具显示服务器错误连接不上怎么解决,win7系统安装逐鹿工具箱提示“error launching installer”错误的解决方法...
  2. linux路由信息预览为空,route - 显示并设置Linux中静态路由表
  3. linux子进程父进程例子,linux 子进程访问父进程
  4. php调用selenium,通过PHP exec()执行Selenium webdriver
  5. log加时间 securecrt_SecureCRT配置自动记录日志
  6. 切片分析报告格式_社科论文写作101-APA数据分析结果报告格式
  7. PHP即将退出,PHP4即将退出历史舞台
  8. matlab 电力系统动态仿真,基于Matlab的电力系统动态仿真分析
  9. java poi生成excel文件_java poi 导出Excel文件
  10. 正则只能出现特定字符_python正则表达式的简单使用总结