【问题标题】:Edit file contents of folder before compress it在压缩之前编辑文件夹的文件内容
【发布时间】:2015-06-16 10:18:06
【问题描述】:

我想压缩文件夹的内容。问题是我需要在压缩文件之前修改文件的内容。修改不应改变原始文件夹中的内容,而应是压缩文件中的内容

到目前为止,我能够使用sed 命令找出更改文件内容-

sed 's:/site_media/folder1/::g' index.html >index.html1

其中/site_media/folder1/ 是我想用空字符串替换的字符串。目前此代码正在创建另一个名为index.html1 的文件,因为我不想对文件index.html 进行就地更改。

我尝试使用如下的 zip 命令流水线化这个命令

sed 's:/site_media/folder1/::g' folder1/index.html > index1.html |zip zips/folder1.zip folder1/

但是当我解压缩文件folder1.zip 时,我没有得到任何内容。压缩文件夹中修改后的文件也应该命名为index.html (and not index.html1)

【问题讨论】:

  • 我的回答有什么反馈吗?
  • 它可以部分工作。实际上,我需要更改压缩文件夹(通过运行 zip 命令获得的结果文件夹)中文件“index.html”的内容,而不将修改后的内容复制到 index1.html(在同一文件夹中)。因此,我首先尝试使用 zip 命令对 sed 进行管道衬里(虽然没有成功)

标签: shell unix sed


【解决方案1】:

你想做两件事。然后,说command1 && command2。在你的情况下:

sed '...' folder1/index.html > index1.html && zip zips/folder1.zip folder1/

如果您使用管道命令,则使用第一个的输出来馈送第二个,这在这种情况下是您不想要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    相关资源
    最近更新 更多