我使用while
循环逐行读取文件,例如,如果文件包含如下行:
ABC.///.AB_SWift_ABC
我需要用
替换它ABC.slashslashslash.AB_SWift_ABC
如何使用Korn shell进行此操作?
答案 0 :(得分:0)
如果您使用bash
,则可以使用变量子串替换功能。
>> a=ABC.///.AB_SWift_ABC >> echo $a ABC.///.AB_SWift_ABC >> echo ${a//\//slash} ABC.slashslashslash.AB_SWift_ABC
答案 1 :(得分:0)
你为什么一行一行地阅读?简单地在文件上运行sed
会更快:
sed 's%/%slash%g'
如果您必须在Bash中执行此操作,请使用替换shell parameter expansion:
${line//\//slash}
你提到反斜杠但使用正斜杠,这令人困惑。如果,你的意思是反斜杠,那么:
sed 's/\\/slash/g'
${lines//\\/slash}
答案 2 :(得分:0)
在c
中,您可以使用bash命令将/
替换为slash
,如
char cmd[]="sed -i 's|/|slash|g' file";
system(cmd);
因此不需要逐行读取文件。