regex - 解析每一行的Linux脚本,检查正则表达式并修改该行

标签 regex linux bash shell csv

我正在尝试编写一个 linux bash 脚本,该脚本接收一个 csv 文件,其中包含以下列格式编写的行(可以是空白):

something,something,,number,something,something,something,something,something,something,,,
something,something.something,,number,something,something,something,something,something,something,,,

并且我必须将以下格式作为输出(如果行包含 . 它必须将 substring1、substring2 中的两个子字符串分开并删除一个 字符,否则什么都不做)

something,something,,number,something,something,something,something,something,something,,,
something,something,something,number,something,something,something,something,something,something,,,

我试图解析文件的每一行并检查它是否符合正则表达式,但是该命令开始了一个永无止境的循环(不知道为什么)并且莫尔沃不知道如何划分子字符串作为输出子串1,子串2

for f in /filepath/filename.csv
do
            while read p; do
            if [[$p == .\..]] ; then echo $p; fi
            done <$f
done

提前致谢!

最佳答案

目前我无法为您提供工作代码,但提供一条快速建议: 1.尝试使用名为sed的工具 2. 了解正则表达式的“捕获组”以获取有关如何根据表达式划分文本的信息。

关于regex - 解析每一行的Linux脚本,检查正则表达式并修改该行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35914693/

相关文章:

java - 有效地将不同的可能子串匹配到相同的值

具有否定模式的 Python 正则表达式

linux - 如何在重启 Linux 机器之前添加条件

php - UTF-8贯穿始终

regex - 如何在 `/` 之后获取此字符串的一部分?

regex - MATLAB 中的动态正则表达式

linux - Apache配置错误403

bash - 从文件名获取日期并分类到文件夹中?

linux - 有多少个进程可以在后台并行运行

java - 正则表达式捕获多个组而不考虑顺序