免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 11830 | 回复: 17
打印 上一主题 下一主题

如何通过shell脚本替换文件特定内容 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-10 11:51 |只看该作者 |倒序浏览
各位,我想通过shell脚本修改/etc/X11/x.conf文件的特定内容如何编写。

eg。 修改InputDevice 中的MinX,MinY,MaxX,MaxY对应的数字。
#xxx.sh  MinXData MinYData MaxXData MaxYData
赐教了!


Section "InputDevice"
    Identifier  "IDCTouchScreen"
    Driver      "idctouch"
    Option      "Device" "/dev/psaux"
    Option      "Interface" "2"
    Option      "DeviceName" "IDCTouchScreen"
    Option      "MinX" "160"
    Option      "MinY" "235"
    Option      "MaxX" "7898"
    Option      "MaxY" "7700"

    Option      "ScreenNumber"  "0"
    Option      "ButtonNumber"  "2"
    Option      "ReportingMode" "Raw"
    Option      "Emulate3Buttons"   "0"
    Option      "DebugLevel"    "0"
    Option      "SendCoreEvents" "On"
    Option      "RealLeftBtn" "0"
    Option      "WaitDeviceCount1" "100"
    Option      "WaitDeviceCount2" "10"
EndSection

论坛徽章:
0
2 [报告]
发表于 2009-02-10 12:01 |只看该作者
想修改成怎么样的?

论坛徽章:
0
3 [报告]
发表于 2009-02-10 12:02 |只看该作者
吧修改后的文件发出来下吧,!!!

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
4 [报告]
发表于 2009-02-10 12:03 |只看该作者


[ 本帖最后由 ynchnluiti 于 2009-2-10 12:35 编辑 ]

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
5 [报告]
发表于 2009-02-10 12:03 |只看该作者
原帖由 haimming 于 2009-2-10 12:01 发表
想修改成怎么样的?

是后面加个Data吧

论坛徽章:
0
6 [报告]
发表于 2009-02-10 12:16 |只看该作者

回复 #1 stranger88 的帖子

sed -r 's/("MinX"|"MinY"|"MaxX"|"MaxY").*/\1 "aaa"/'  /etc/X11/x.conf
如果改成相同的值的话用这个,其中aaa为你要修改的值:
改成不同的值的话用:
sed -r 's/("MinX").*/\1 "aaa"/;s/("MinY").*/\1 "bbb"/;s/("MaxX").*/\1 "ccc"/;s/("MaxY").*/\1 "ddd"/'  /etc/X11/x.conf
其中aaa bbb ccc ddd是各自要设置的值!

论坛徽章:
0
7 [报告]
发表于 2009-02-10 12:26 |只看该作者

回复 #5 ynchnluiti 的帖子

我猜楼主要的是这个

  1. #!/bin/bash
  2. #xxx.sh
  3. #运行格式为 xxx.sh  MinX Data1 MinY Data2 MaxX Data3 MaxY Data4
  4. until [ -z "$1" -a -z "$2" ]
  5. do
  6. sed -ir '/InputDevice/,/EndSection/{s/'"$1"'.*/'"$1"'" "'"$2"'"/}' urfile
  7. shift 2
  8. done
  9. exit 0
复制代码

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
8 [报告]
发表于 2009-02-10 12:34 |只看该作者
原帖由 haimming 于 2009-2-10 12:26 发表
我猜楼主要的是这个

#!/bin/bash
#xxx.sh
#运行格式为 xxx.sh  MinX Data1 MinY Data2 MaxX Data3 MaxY Data4
until [ -z "$1" -a -z "$2" ]
do
sed -ir '/InputDevice/,/EndSection/{s/'"$1"'.*/'"$1 ...

是。修改MinX..等后面的数字

论坛徽章:
0
9 [报告]
发表于 2009-02-10 12:56 |只看该作者
看错了,呵呵!!!学习!!

[ 本帖最后由 飞鸿无痕 于 2009-2-10 12:58 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2009-02-10 12:56 |只看该作者

回复 #7 haimming 的帖子

不错,学习一下shift 2的用法
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP