Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 使用matlab查找并替换txt文件中的单词_Windows_Matlab_Sed_Cmd - Fatal编程技术网

Windows 使用matlab查找并替换txt文件中的单词

Windows 使用matlab查找并替换txt文件中的单词,windows,matlab,sed,cmd,Windows,Matlab,Sed,Cmd,在我的文件中,我必须将所有的“Volume”替换为“Grain”。这是用Matlab编写的自动化脚本的一部分 我尝试使用以下方法: sed -i -e 's/Volume/GRAIN_/g' 3C1_N103_Gmsh2.inp 我在matlab中创建了一个字符串,如下所示 str = ['sed -i -e ','''','s/Volume/GRAIN_/g','''',' ','3C1_N103_Gmsh2.inp']; 我试过使用dos和系统命令,但都不起作用 dos(str) sy

在我的文件中,我必须将所有的“Volume”替换为“Grain”。这是用Matlab编写的自动化脚本的一部分

我尝试使用以下方法:

 sed -i -e 's/Volume/GRAIN_/g' 3C1_N103_Gmsh2.inp
我在matlab中创建了一个字符串,如下所示

str = ['sed -i -e ','''','s/Volume/GRAIN_/g','''',' ','3C1_N103_Gmsh2.inp'];
我试过使用dos和系统命令,但都不起作用

dos(str)
system(str)
我在窗户上

我得到了以下错误:

“sed”未被识别为内部或外部命令, 可操作的程序或批处理文件。
有什么建议吗?

既然你说你有cygwin,只要稍加努力,你就可以使用sed了

C:> type input.txt
one two three

C:>c:\cygwin\bin\sed.exe -e 's/two/2/' input.txt
one 2 three

在matlab中试试这个,让我们知道。

你在Windows上吗?是的。我在Windows上Windows不是用sed构建的。您是否明确安装了任何软件包/软件(如cygwin、MingGW或任何为windows提供sed命令的软件)?如果没有这些,就不能使用sed。我的电脑中安装了cygwin,有解决方法吗?请参阅。它很好地讨论了windows上linux/sed的替代品/替代品。如果这是一个快速的一次性工作,您可以使用powershell。我尝试了以下方法:dos('C:\cygwin64\bin\sed.exe-e's/Volume/GRAIN\uu/'3C1\u N103\u Gmsh2.inp'),但它不起作用,尽管我没有收到任何错误,但它起作用了。我甚至使用CygWin使用DOS()运行C++代码。此命令正在运行,但无法替换单词dos()命令似乎只返回状态(0/1)。s=evalc('system('dir'))命令应根据返回输出。另外,[status,cmdout]=system(command)也应该返回前面提到的输出;成功了!您选择了“sed”的“就地”编辑选项来编辑3C1_N103_Gmsh2.inp文件;因此,您不需要输出。出于好奇,您是否能够以“系统”命令的“返回”形式获得输出?如果是这样的话,将来如果需要“system”命令的输出,您可以使用该代码。祝你好运