- 論壇徽章:
- 0
|
本帖最后由 s1113 于 2016-06-25 12:39 編輯
$ cat ip001.txt
#a_IPadress ttt
a_IPadress sonsafasdf
b_IPadress 192.168.19.2
c_IPadress 192.168.19.3
a_IPadres sonsafasdf
直接看數(shù)據(jù)文件最后兩段:
[root@CentOS6_253 sh]# ./setvaluebykey.sh ip001.txt a_IPadress " " 2 sonsafasdf
#a_IPadress ttt
a_IPadress sonsafasdf
b_IPadress 192.168.19.2
c_IPadress 192.168.19.3
a_IPadres sonsafasdf
[root@CentOS6_253 sh]# ./setvaluebykey.sh ip001.txt a_IPadress " " 2 s
#a_IPadress ttt
a_IPadress s
b_IPadress 192.168.19.2
c_IPadress 192.168.19.3
a_IPadres sonsafasdf
nsafasdf
setvaluebykey.sh 腳本參數(shù)解釋:
ip001.txt 是要修改的文件;
a_IPadress 是要尋找的key值(必須頂行頭才有效,而且要完全匹配——后面跟分隔符)
“ ” 分隔符,空格——自定義
2 每一行,以自定義分割符來計(jì)數(shù)的列號
s 最后一個(gè)字符,用來 比較,如果不同就替換原文件key鍵后第2列的值為該值
最后想要的效果是,做成通用方法,比如修改 sshd_config的 PermitRootLogin,比如修改login.defs 的PASS_MIN_LEN,用途很廣,
一次制作,以后想改哪里改哪里,但
awk -v line=$lineno -v findex=$valueindex -v var=$valuestr 'NR==line{if ($findex!=var) $findex=var}1' $filename 1<>$filename
這一行,只要加了 1<>$filename 就會在文件尾追加一行莫名其妙?
而且大多數(shù)情況下正常,就是我發(fā)的這個(gè)數(shù)據(jù)文件 在這種情況下不行,真心求教,先謝過各位了~!
對了我的系統(tǒng)是
# cat /etc/redhat-release
CentOS release 6.7 (Final)
數(shù)據(jù)文件及腳本見第3、4樓。 |
-
-
bak.rar
2016-06-24 18:02 上傳
點(diǎn)擊文件名下載附件
818 Bytes, 下載次數(shù): 13
|