shell - 从文本文件中逐行读取并在 shell 脚本中打印我想要的方式
问题描述
我想从文本文件中逐行读取下面的文件并在 shell 脚本中打印我想要的方式
Text file content:
zero#123456
one#123
two#12345678
我想将其打印为:
zero@1-6
one@1-3
two@1-8
我尝试了以下方法:
file="readFile.txt"
while IFS= read -r line
do echo "$line"
done <printf '%s\n' "$file"
解决方案
这不是 shell 脚本(首先错过了,抱歉),而是使用 perl 结合前瞻和后瞻来获取数字:
$ perl -pe 's/(?<=[0-9]).*(?=[0-9])/-/' file
Text file content:
zero#1-6
one#1-3
two#1-8
解释了一些:
s//-/
替换为-
(?<=[0-9])
正面向后看,如果前面有数字(?=[0-9])
正向前瞻,如果后跟一个数字
推荐阅读
- dax - 关于计算上一季度与当前季度之间差异的问题
- java - 队列中的 null 和 isEmpty() 有什么区别
- spring - Spring Cloud Stream Kafka - 方法必须是声明性的
- latex - 在空白不敏感环境/Z-Notation Schema 中格式化 Latex 中的字符串
- angularjs - 在 AngularJS 和 restangular 中调用 rest API
- python - 如何修复 KeyError:mycode 中的 0
- sql - 计算sql中远程和本地集之间的差异
- python - re.sub 将模板转换为函数
- python-2.7 - 在 Python Shell 错误模块上运行 GrassGIS API 外部运行无
- boolean-logic - 带有嵌套与非门的布尔表达式?