【问题标题】:find + sed not working as expectedfind + sed 没有按预期工作
【发布时间】:2016-12-24 04:41:28
【问题描述】:

我正在尝试运行一个脚本,该脚本在某些文件夹中搜索某些文件,如果找到,则将整行替换为另一个句子。我尝试的如下:

#! /bin/sh

I=$(find /home -maxdepth 7 -iname desktop-items-0.conf -exec sed '6s/.*/teste/' {} \;)
echo "$I"

【问题讨论】:

  • 输出是什么?这可能对我们有很大帮助。
  • BashFAQ #21,mywiki.wooledge.org/BashFAQ/021,可能感兴趣。
  • 提供 desktop-items-0.conf 的内容(至少第 6 行)以及实际结果将是一个起点。

标签: linux shell ubuntu sed find


【解决方案1】:

试试这个;

#! /bin/sh
I=$(find /home -maxdepth 7 -iname desktop-items-0.conf -exec sed '6s/^.*$/teste/' {} \;)
echo "$I"

例如:

desktop-items-0.conf

    [*]
    wallpaper_mode=center
    wallpaper_common=1
    wallpaper=/usr/share/raspberrypi-artwork/raspberry-pi-logo-small.png
    desktop_bg=#d6d6d3d3dede
    desktop_fg=#000000
    desktop_shadow=#d6d6d3d3dede
    desktop_font=Roboto Light 12
    show_wm_menu=0
    sort=mtime;ascending;
    show_documents=0
    show_trash=1
    show_mounts=0

运行后

第 6 行更改如下;

[*]
wallpaper_mode=center
wallpaper_common=1
wallpaper=/usr/share/raspberrypi-artwork/raspberry-pi-logo-small.png
desktop_bg=#d6d6d3d3dede
teste
desktop_shadow=#d6d6d3d3dede
desktop_font=Roboto Light 12
show_wm_menu=0
sort=mtime;ascending;
show_documents=0
show_trash=1
show_mounts=0

如果你想修改文件。使用 sed -i

【讨论】:

    猜你喜欢
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    相关资源
    最近更新 更多