通过忽略反斜杠使用awk / sed在cpp文件流中附加给定变量

时间:2014-12-05 19:54:12

标签: bash shell awk sed

我在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中的“/”

2 个答案:

答案 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