python脚本“未找到命令”issu上的sed替换

2024-06-17 08:01:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经在谷歌上搜索了一段时间,但找不到答案。我有以下bash函数,它在python项目目录中为'NAME'执行grep。它提取包含'NAME'的正确文件。然后我运行一个sed命令,用一个用户输入字符串代替'NAME'。在

replace_NAME_in_files() {
    read -ra MATCHED_FILES <<< `grep 'NAME' $NEW_PROJECT -lR`
    for file in "${MATCHED_FILES[@]}"; do
        `sed "s/NAME/$1/g" $file`
    done
}

我得到的错误是:

^{pr2}$

现在,与grep 'NAME'匹配的两个文件如下所示:

^{3}$

sed的另一个输入文件是:

Dev-MacBook-Pro:projects dev$ cat ex47/tests/ex47_tests.py 
from nose.tools import *
import NAME

def setup():
    print "SETUP!"

def teardown():
    print "TEAR DOWN!"

def test_basic():
    print "I RAN!"

当我使用调试模式运行脚本时,输出是:

++ grep NAME /Users/dev/python/workspace/projects/ex47 -lR
+ for file in '"${MATCHED_FILES[@]}"'
++ sed s/NAME/ex47/g /Users/dev/python/workspace/projects/ex47/setup.py
+ try: from setuptools import setup except ImportError: from distutils.core import setup config = '{' ''\''description'\'':' ''\''My' 'Project'\'',' ''\''author'\'':' ''\''dev'\'',' ''\''url'\'':' ''\''URL' to get it 'at.'\'',' ''\''download_url'\'':' ''\''Where' to download 'it.'\'',' ''\''author_email'\'':' ''\''My' 'email.'\'',' ''\''version'\'':' ''\''0.1'\'',' ''\''install_requires'\'':' '['\''nose'\''],' ''\''packages'\'':' '['\''ex47'\''],' ''\''scripts'\'':' '[],' ''\''name'\'':' ''\''projectname'\''' '}' 'setup(**config)'
/Users/dev/scripts/new_python_project.sh: line 37: try:: command not found
+ for file in '"${MATCHED_FILES[@]}"'
++ sed s/NAME/ex47/g /Users/dev/python/workspace/projects/ex47/tests/ex47_tests.py
+ from nose.tools import ex47 skeleton skeleton_bck import ex47 def 'setup():' print '"SETUP!"' def 'teardown():' print '"TEAR' 'DOWN!"' def 'test_basic():' print '"I' 'RAN!"'
from: can't read /var/mail/nose.tools

sed似乎执行了替换,但是它看起来像是在尝试执行输入文件?知道发生什么事了吗?在


Tags: 文件nameinfromdevimportdefsetup