【问题标题】:linux replacing code in all fileslinux替换所有文件中的代码
【发布时间】:2018-06-06 17:24:29
【问题描述】:

系统是Linux Debian 7 32bit。

当我尝试替换同一文件夹中所有文件中的某些代码时遇到问题。

例如文件名是:

--ADBCABCD-.html

ABCDABCD.html

例如我想用

sed -i "s|< script >|< iframe >|g" *

执行此命令后我看到了这个问题

sed: invalid option -- 'A'
Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]...

这是因为文件名包含---

与此文件名相同--ADBCABCD-.html

请问我该如何解决这个问题我有很多文件名包含---

【问题讨论】:

  • 我认为“你不能转义破折号,或者用单引号括起来”,但是对于 --weird 命名的文件,这些都失败了...

标签: linux bash sed replace debian-7.6.0


【解决方案1】:

使用-- 选项。这是大多数 Unix 实用程序中最流行的选项。

sed -i -- 's/input/output/g' *
       ^^

或者,在使用 glob 进行匹配时,添加目录前缀:

sed -i 's/aaa/bbb/' ./*

没有人会将./-- 视为一种选择,对吧?

【讨论】:

  • 问题依旧
  • 非常感谢您帮助我修复了代码,现在代码是:sed -i -- "s|
猜你喜欢
  • 2016-08-12
  • 2012-05-20
  • 2016-08-23
  • 2020-02-22
  • 1970-01-01
  • 2017-10-05
  • 2017-12-09
  • 2023-03-27
  • 1970-01-01
相关资源
最近更新 更多