我在shell脚本中有一个变量,如下所示:
var=file1.cpp file2.cpp file3.cpp file4.cpp
我想将此“Folder/SubFolder/
”附加到每个.cpp文件中。我使用以下sed
命令部分帮助:
echo $var | sed 's/^/'"$i"'\//g;s/\s/ '"$i"'\//g'
where $i --> "Folder" and sed adds extra "/" to it
此sed
只能将“Folder/
”附加到文件中....我无法将“Folder/SubFolder
”附加到每个文件中。
如何修改sed以添加文件的“Folder / SubFolder /”路径。我可以以某种方式修改它以忽略$i
变量中的反斜杠“/”(即忽略Folder/SubFolder
中的“/”
答案 0 :(得分:0)
您可以使用sed
的其他分隔符,例如#
此外,您可以将s
命令合并为一个sed
示例
$ echo $var | sed -r 's#(^| )#\1folder/subfolder/#g'
folder/subfolder/file1.cpp folder/subfolder/file2.cpp folder/subfolder/file3.cpp folder/subfolder/file4.cpp
或强>
如果您想在sed
$ re="folder/subfolder/"
$ echo $var | sed -r "s#(^| )#\1$re#g"
folder/subfolder/file1.cpp folder/subfolder/file2.cpp folder/subfolder/file3.cpp folder/subfolder/file4.cpp
答案 1 :(得分:0)
您也可以在脚本中尝试这些代码
var="file1.cpp file2.cpp file3.cpp file4.cpp"
i="Folder/SubFolder/"
echo "$var"|sed "s#[^ ][[:alnum:]]*[^ ]\.#$i&#g"
输出
Folder/SubFolder/file1.cpp Folder/SubFolder/file2.cpp Folder/SubFolder/file3.cpp Folder/SubFolder/file4.cpp