我正在尝试编写一个 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/