sed任务在macbook pro上不起作用
我还没有找到以下愚蠢任务的解决方案 我有一个文件,我用它的完整路径表示sed任务在macbook pro上不起作用,sed,awk,Sed,Awk,我还没有找到以下愚蠢任务的解决方案 我有一个文件,我用它的完整路径表示 file_name 以及存储在变量var1和var2中的两个字符串 我知道var2中的字符串在文件file\u name中。我想用var1中的字符串查找并替换file\u name中出现的所有var2 这些字符串包含路径名。这意味着我在里面有字符/ 此外,我的机器是MacBookPro 结合在互联网上找到的许多建议,我最终在一个终端上进行了尝试 sed -i "" -e "s:$var2:$var1:g" file_na
file_name
以及存储在变量var1
和var2
中的两个字符串
我知道var2
中的字符串在文件file\u name
中。我想用var1
中的字符串查找并替换file\u name
中出现的所有var2
这些字符串包含路径名。这意味着我在里面有字符/
此外,我的机器是MacBookPro
结合在互联网上找到的许多建议,我最终在一个终端上进行了尝试
sed -i "" -e "s:$var2:$var1:g" file_name
结果:文件名未更改。有什么建议吗
awk有解决方案吗?Mac使用BSD
sed
,而不是GNUsed
。BSDsed
没有-i
或-in-place
选项。您必须将其写入临时文件,然后在写入新文件后将其移动到位。var2或var1中是否有:
?var2中有任何正则表达式元字符吗?它们没有:,这就是我选择的原因:。但它们包含空格。这可能是个问题吗?不,空间不应该是个问题。但是任何*
,+
,^
,$
,
等都可能导致var2
出现问题。使用内联代码执行一些小测试,即var1=a;var2=A;回显“Abc”| sed“s/$var2/$var1/”
。当这可行时,然后一次做一个更改,直到得到最终的工作解决方案。你所发布的内容应该在表面上起作用。哦,等等,文件名是在windows计算机上创建的吗?如果是,请首先选择dos2unix文件名。祝你好运。根据@hek2mgl的评论。运行该命令时会发生什么情况?来自sed的错误?没有什么文件吐到终端了吗?