我是 shell 脚本新手,不明白这个sed
命令的作用。你能帮忙解释一下吗?
cat $fRostroTmp | sed "s/ *|/;/g" >> $fRostroCsv
rm -f $fRostroTmp
答案1
在评论中,您具体询问了sed
表达式s/ *|/;/g
。
这是一个替换命令 ( s
),它将正则表达式*|
匹配的任何内容替换为单个字符;
。
该表达式*|
匹配零个或多个空格,后跟一个|
字符。因此,无论输入中出现这种情况,它都会被替换为;
.
g
表达式末尾的 会导致将sed
替换应用于每行上的所有非重叠匹配项,而不仅仅是第一个匹配项。这意味着一行说
1 2 3 | 3 4 5 | 5 6 6
或者
1 2 3| 3 4 5 | 5 6 6
将转化为
1 2 3; 3 4 5; 5 6 6