分页: 1 / 1

又来求高人指点了。。

发表于 : 2012-08-06 20:24
13378333
写一个脚本,非交互模式,修改一个文件的第100行内容随意,。。。然后追加abc到101行。。。文件名随意。。。
求指点 :em09

Re: 又来求高人指点了。。

发表于 : 2012-08-06 22:14
cuihao
hint:
使用 sed。

Re: 又来求高人指点了。。

发表于 : 2012-08-19 20:45
过七不候
用head + tail 应该可以搞定,我这边试了一下。

代码: 全选

head -99 test.txt > tmp.txt

echo "test" >> tmp.txt

var=`head -101 test.txt | tail -1`abc
echo $var >> tmp.txt

num=`wc -l test.txt | awk '{print $1}'`
tailline=`expr $num - 101`

tail -$tailline test.txt >> tmp.txt

cat tmp.txt > test.txt
rm tmp.txt

Re: 又来求高人指点了。。

发表于 : 2012-08-19 21:31
13378333
过七不候 写了:用head + tail 应该可以搞定,我这边试了一下。

代码: 全选

head -99 test.txt > tmp.txt

echo "test" >> tmp.txt

var=`head -101 test.txt | tail -1`abc
echo $var >> tmp.txt

num=`wc -l test.txt | awk '{print $1}'`
tailline=`expr $num - 101`

tail -$tailline test.txt >> tmp.txt

cat tmp.txt > test.txt
rm tmp.txt

高人啊,不用sed

Re: 又来求高人指点了。。

发表于 : 2012-08-19 22:34
lilydjwg

代码: 全选

sed -e '100s/xxx/yyy/' -e '101s/$/abc/'
这个意思?

Re: 又来求高人指点了。。

发表于 : 2012-08-19 23:45
13378333
lilydjwg 写了:

代码: 全选

sed -e '100s/xxx/yyy/' -e '101s/$/abc/'
这个意思?
怎么都是s? :em03

Re: 又来求高人指点了。。

发表于 : 2012-08-20 9:45
13378333
记录一下。。
sed -e "s|%%PREFIX%%|/usr/local/nginx|" \
-e "s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|" \
-e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" \
-e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|" \
< man/nginx.8 > objs/nginx.8

Re: 又来求高人指点了。。

发表于 : 2012-08-20 9:49
chengmoYS
sed awk regex高效

Re: 又来求高人指点了。。

发表于 : 2012-08-20 11:28
lilydjwg
13378333 写了:记录一下。。
sed -e "s|%%PREFIX%%|/usr/local/nginx|" \
-e "s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|" \
-e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" \
-e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|" \
< man/nginx.8 > objs/nginx.8
这里不需要对输入进行重定向的,sed 会处理在命令行上列出的文件。(去掉 < 即可)
13378333 写了:
lilydjwg 写了:

代码: 全选

sed -e '100s/xxx/yyy/' -e '101s/$/abc/'
这个意思?
怎么都是s? :em03
你要找 m 吗? :em05