首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BASH add in line

BASH add in line
EN

Stack Overflow用户
提问于 2009-07-13 11:21:26
回答 3查看 1.4K关注 0票数 2

我想写代码来添加在行中为ex打开inittab文件,并添加

代码语言:javascript
复制
c2:1235:respawn:/sbin/agetty 38400 tty2 linux
c3:1235:respawn:/sbin/agetty 38400 tty3 linux
c4:1235:respawn:/sbin/agetty 38400 tty4 linux
c5:1235:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux
<<~~~ i want add code here 

# Local serial lines:
#s1:12345:respawn:/sbin/agetty -L ttyS0 9600 vt100
#s2:12345:respawn:/sbin/agetty -L ttyS1 9600 vt100

在bash中有什么方法可以做到这一点吗?

EN

回答 3

Stack Overflow用户

发布于 2009-07-13 11:39:24

这里是使用嵌入的awk代码片段的wazoox脚本的替代方案(我已经添加了来自wazoox的初始化-q )

代码语言:javascript
复制
#!/bin/bash

my_file=/etc/inittab
my_pattern="c6:12345:respawn:.* 38400 tty6 linux"

awk -f - ${my_file}<<__END__
{ print }
/${my_pattern}/ { 
    print "any code you want to add" 
}
__END__

init -q

只需检查您想要检测的模式,并使用"man awk“进行打印。如果您有很大的代码块要添加,那么可以在awk代码片段中使用$(cat ${my_code_file})

票数 1
EN

Stack Overflow用户

发布于 2009-07-13 11:29:24

修改你的inittab,然后"init -q“重新加载它。如果您的问题是关于bash中的文件编辑,您可以读取文件并在循环中重写它,如下所示:

代码语言:javascript
复制
for i in `cat thefile`
do
   echo $i >> someOtherFile
   if [ "some condition" == "some condition" ];
       then
       # do something else
   fi
done

这将逐行读取"thefile“并写入"someOtherFile”,同时允许您插入任何测试以在流中添加行。

票数 0
EN

Stack Overflow用户

发布于 2009-07-13 11:35:09

单行道

代码语言:javascript
复制
# awk '/^# Local serial lines/{ print "I wanna add code here\n"}1' /etc/inittab > temp
# mv temp /etc/inittab

然后按照wazoox说的那样初始化-q。

另一种方式:如果只有一次,则手动编辑inittab。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1118923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档