最近,我需要做这项工作:
步骤1
在file_A中查找匹配的字符串,例如要匹配的字符串是“ILikeeStackoverflow”。
文件_A
……
IlikeStackoverflow
“ILikeStackoverflow”之后的行
…………
第2步
如果存在此字符串“ILikeeStackoverflow”,则将另一个 file_B(少于 10 行)复制到此 file_A 中,就在该字符串之后。
所以在完成这个副本之后,file_A 应该看起来像这样:
文件_A
……
IlikeStackoverflow
Line_1_of_file_B
Line_2_of_file_B
……
Line_n_of_file_B
“ILikeStackoverflow”之后的行
…………
我的代码是这样,但不能正常工作(当前目录中的 file_A 和 file_B )。
match_string="ILikeStackoverflow"
sed " /^$match_string/a"$file_B" " file_A
非常感谢您的建议!
编辑 :
现在,我知道为什么我被卡住了,但不知道如何修复代码。有想法的请继续评论,非常感谢!
问题是,只有当字符串占据单独的行时,sat 的代码才有效。如果匹配的字符串只是一个长字符串的一部分,那么他的代码就不能工作。例如,如果 fileA 是这样的,那么代码就不能工作。
文件_A
……
/test/begin/ILikeStackoverflow/test/end
“ILikeStackoverflow”之后的行
…………
实际上,在我的“index.html”中,要匹配的字符串是:“5000s-IntW300”,而包含我匹配的字符串的行是:
/blue-ccd-data/DAMIC_SNOLAB_RUN1/5000s-IntW300-OS
有什么建议可以解决吗?
再次非常感谢!
编辑2:
实际上,我想将 fileB 复制到比匹配的字符串行多一行的位置。例如,实际位置是:
文件_A
……
/test/begin/ILikeStackoverflow/test/end
该行包含重要信息,不应在此处复制 fileB。
这是应该复制的 fileB 的确切行。
…………