Regex sed命令不工作
sed命令:Regex sed命令不工作,regex,shell,sed,Regex,Shell,Sed,sed命令: pushd tests mkdir -p $RPM_BUILD_ROOT%{_bindir} for foo in $(make check-programs) ; do install -m 0755 .libs/$foo $RPM_BUILD_ROOT%{_bindir} done popd o/p: 预期: for foo in dristat drmstat$(make check-programs) ; do 有人能告诉我我做错了什么吗?Re:sed-I'ss@fo
pushd tests
mkdir -p $RPM_BUILD_ROOT%{_bindir}
for foo in $(make check-programs) ; do
install -m 0755 .libs/$foo $RPM_BUILD_ROOT%{_bindir}
done
popd
o/p:
预期:
for foo in dristat drmstat$(make check-programs) ; do
有人能告诉我我做错了什么吗?Re:sed-I'ss@for在dristat中针对foo的$(进行检查程序)@中的foodrmstat@g"
我怀疑这不是你真正的剧本。你有没有在真实的双引号
for foo in dristat drmstat ;do
现在,您有了一个未scaped的命令替换:$(make…
)。假设它在您执行此sed作业的环境中运行,并且不产生任何输出。该论点的扩展是:
# as in:
sed -i "s@for foo in $(make check-programs)@for foo in dristat drmstat@g"
这将产生:
s@for foo in @for foo in dristat drmstat@g
请在文件
file1
中获取数据,然后使用以下命令:
for foo in dristat drmstat$(make check-programs) ; do
在$
和之间有\
(
和程序之间有
)
谢谢。无法复制。确保你使用的引用是你在这篇文章中的引用。(使用
“
不起作用。)我复制了整个代码和o/p…。它与这里发布的完全相同:-d当你使用一个有趣的shell时-因为使用bash
,你发布的内容在你发布的文件上按预期工作,而不是你观察到的。我正试图使用此sed命令编辑src rpm的spec文件…。当我将此代码复制到新文件中,并在其上应用此sed命令,成功了..嗯,发生了什么事,你们知道吗?你们试图编辑的原始文件是否是在Windows上创建的?如果是,请使用dos2unix疑难文件
good luck.sed-我很高兴s@for以美元计价的foo(制作检查程序)@在dristat的foodrmstat@g'filename>filename2它起作用了,我在file2中得到了正确的结果……奇怪的是,请不要这样做:sed
可以读取文件,所以不应该使用cat
(它被称为uooc-无用的cat
)。
for foo in dristat drmstat$(make check-programs) ; do
cat file1|sed 's/\$\(make check-programs\)//g'