1
我有一個修改文件的bash腳本。 我有一個sed,將去尋找一條線,並用另一個說法取代它:bash腳本查找行並修改下一行
sed -i '[email protected] {@/.leaflet-left {@g' "$<Path_to_my_file...>"
不過,我想,而不是找到包含.leaflet-right {
行,然後修改從right: 0;
下一行left: 0;
我有一個修改文件的bash腳本。 我有一個sed,將去尋找一條線,並用另一個說法取代它:bash腳本查找行並修改下一行
sed -i '[email protected] {@/.leaflet-left {@g' "$<Path_to_my_file...>"
不過,我想,而不是找到包含.leaflet-right {
行,然後修改從right: 0;
下一行left: 0;
#% cat tester
blah
blah
.leaflet-right {
right: 0; CHANGE
right LEAVE
blah
blah
然後
sed '/.leaflet-right/{n;s/right/left/;}' < tester
給
blah
blah
.leaflet-right {
left: 0; CHANGE
right LEAVE
blah
blah
使用awk,您可以使用行數是這樣的:
這將打印在有事行的行號(在本例中,它包含文本something
)
awk '/something/ {print NR}'
這會從上一行
awk -v v1=2 {if (FNR==v1-1) print $2}'
你也許可以做的sed和awk組合的最終結果打印第二個字段。
嗯,好吧,我在做這一切: VAL1 ='的awk「{/.leaflet-right/{打印NR} '「$ <文件路徑>」 editline1 = $(expr $ val1 + 1) appendval1 =「left:0;」 sed -i「$ {editline1} s/\ $/$ {appenval1} /」「$ <文件路徑>」 但是您的解決方案要好得多,thx! – Bwyss
這是有幫助的http://www-rohan.sdsu.edu/doc/sed.html – sotapme