用于将换行添加到文本文件末尾的Perl脚本

时间:2016-03-23 18:04:15

标签: linux bash perl server newline

我试图让perl脚本在文本文件的末尾添加换行符,然后写入以下内容:

/ bin中/假

该文件如下所示:

  

/ bin / sh的
  /斌/破折号
  /斌/庆典
  /斌/ rbash
  在/ usr / bin中/ TMUX
  的/ usr /斌/屏幕

我尝试过运行以下脚本:

  

perl -pi -e的/// usr // bin // screen /// usr // bin // screen“\ n”// bin // false / g'/ etc / shells

但没有任何运气。它不接受换行符,只返回语法错误。你能帮忙吗??

1 个答案:

答案 0 :(得分:1)

此:

s///usr//bin//screen///usr//bin//screen"\n"//bin//false/g

确实有语法错误。从你使用双倍的事实开始 路径上的栏,你应该逃过它们(\/),还有 它中间有一个奇怪的换行符。你也可以使用其他 分隔符而不是正斜线,以避免全部逃脱。

s!/usr/bin/screen\n!/usr/bin/screen\n/bin/false!

另外,别忘了关闭你的最后一行。你也可以使用\K (有关详细信息,请参阅perldoc perlre)以简化正则表达式 结果:

s!/usr/bin/screen\n\K!/bin/false\n!

但无论如何,这似乎有点矫枉过正。您可以使用shell功能 通过附加>>

来回显一行并重定向到文件
echo /bin/false >> /etc/shells