linux - 在 shell 脚本中的文件中插入带有特殊字符(正斜杠)的行

标签 linux bash shell

在文件中插入行的脚本

> cat text
BBLAYERS ?= " \
  /home/neeraj/yocto/poky/meta \
  /home/neeraj/yocto/poky/meta-yocto \
  /home/neeraj/yocto/poky/meta-yocto-bsp \
  "

因为我必须在模式下面插入一行

> cat text
BBLAYERS ?= " \
  /home/neeraj/yocto/poky/meta \
  /home/neeraj/yocto/poky/meta-yocto \
  /home/neeraj/yocto/poky/meta-yocto-bsp \
  /home/neeraj/yocto/poky/meta-ti \
  "

最佳答案

(未测试) 可能是您正在寻找的内容:

#!/bin/bash

awk -v search="$1" -v add="$2" '$0 ~ search{$0=$0"\n"add}1' "$3" >$4

exit

您将在其中使用以下格式执行:

user@system:$ ./path-to-script.sh "Line you want to find" "Line you want to add" Input_File Output_File

如果需要更多解释,请告诉我。 :-)

关于linux - 在 shell 脚本中的文件中插入带有特殊字符(正斜杠)的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29163077/

相关文章:

shell - 脚本文件执行正常,但在 SSIS 中使用 WinSCP 失败

linux - tmux、vim、emacs 等如何超越 *nix 终端的 UI 限制?

linux - 在 expect 脚本中运行 bash 脚本

regex - bash是否支持单词边界正则表达式?

linux - 你将如何制作一个 shell 脚本来监控挂载和日志问题?

node.js - 如何在 NodeJS 中传递和检索参数到 .sh 文件?

linux - 如何找到使用特定内核模块的进程列表?

linux - 在 Linux 上,如果没有选项 -d,带有 LS 的 FIND 命令不会显示正确的结果

linux - shell中for循环控制变量的范围?

bash - Shell - 表达式中的语法错误(错误标记为 "16")