shell - 匹配 Unix 中的文件字符串
问题描述
我在 $FILES_DIR 目录中有 3 个文件
1) File_Apple.txt
2) File_Samsung.txt
3) File_Huwaei.txt
Header rows of File_Apple.txt
AAA1,BBB2,CCC3
Header rows of File_Samsung.txt
DDD1,EEE2
Header rows of File_Huwaei.txt
FFF1,GGG2,HHH3,III4
还有一个名为 head_config 的文件,其中包含上述 3 个文件的标题行。
head_config.txt
AAA1,BBB2,CCC3
DDD1,EEE2
FFF1,GGG2,HHH3,III4
基本上我必须匹配文件的标题是否根据 head_config.txt 文件正确
我可以通过一些繁琐的过程来做到这一点:分别复制每个文件的标题行并附加到一个新文件中。然后比较用 head.config.txt 创建的新文件
head -1 File_Apple.txt >> new_file.txt
head -1 File_Samsung.txt >> new_file.txt
head -1 File_Huwaei.txt >> new_file.txt
然后 cmp new_file.txt 到 head_config.txt
我怎样才能更有效地做到这一点?
解决方案
首先,确保头文件中的行按文件名的字母顺序排序。所以 head_config.txt 变成:
AAA1,BBB2,CCC3
FFF1,GGG2,HHH3,III4
DDD1,EEE2AAA1,BBB2,CCC3
然后执行这个命令:
diff head_config.txt <(head -q -n1 File_*)
如果文件匹配,将没有输出,并且$?
将是0
.
推荐阅读
- node.js - 通过 Socket.IO 向所有关注者发送消息
- mysql - 如何在 Windows 10 上挂载 Docker MySQL 数据/套接字卷?
- c++ - 我对如何让我的天空盒与我的相机视图相匹配有点困惑
- arrays - 谷歌表格公式将列添加到数组?
- javascript - 如何在不使用现已弃用的 ::ng-deep 的情况下自定义外部组件的样式?
- ruby-on-rails - I18n.t(:child2) 参考问题
- apache-spark - Spark 提交不尊重 spark-defaults.conf 中设置的 spark.driver.supervise=true
- c++ - 实现迭代器,以便我可以对通用数组 cpp 进行排序
- ios - 是否可以在 Swift 的案例中进行转场?
- python - 如何获得以数据帧格式转换的 json 输出?