悲劇啊,sed替換加了p,所以寫了乙個指令碼來刪除。

2021-09-11 00:19:11 字數 956 閱讀 5855

因需要調整好多檔案中涉及異常處理的語句。每個檔案中要修改的,和修改後的**是一樣的,所以想到使用sed來替換,使用find加grep -l給sed傳參。

sed -i 's/source_str/target_str/g p'

`find path -type f |

xargs

grep -l "source_str"

`

結果悲劇了,編譯檔案報錯一看檔案target_str竟然有兩行,history檢視自己的命令,慘了,沒辦法,寫了下面的指令碼來刪除錯誤的資料,f為編譯報錯的記錄檔案。

import re

import os

rm =

'/opt/rm'

f =open

(rm)

c = re.

compile

(r".*?/(\w+\.py).*?\s([0-9])"

)newlines = f.read(

).split(

':')

for newline in newlines:

if newline:

file

=str

(re.search(c,newline)

.group(1)

) line = re.search(c,newline)

.group(2)

print

file

print line

os.system(

"sed -i '%sd' `find /opt -name %s`"

%(line,

file))

print

("sed -n '%sd' `find /opt -name %s`"

%(line,

file

))

悲劇加喜劇

今天是第五次個人賽,沒想到,只做出1題,是最短路徑問題。第一題是字串求最長公共字首,很快就寫好了 提交超時了,很快我被它嚇住了,因為上次組隊賽做了最長公共字尾,現在還沒理解啊,現在又弄個字首。我換了方法,先排序,再乙個個判斷,沒想到還是超時,而最後一題的揹包問題我之前做過的!忘記了。而且當時也理解錯...

sed 文字替換

呼叫sed命令有兩種形式 sed options command file s sed options f scriptfile file s 刪除 d命令 sed 2d example 刪除example檔案的第二行。sed 2,d example 刪除example檔案的第二行到末尾所有行。se...

sed 文字替換

sed s front back aa.txt sed s front back aa.txt 這兩個命令的作用是一樣的 可以通過vi介面中操作 s front back g s front back 都是全域性替換 將檔案由檢視模式切換成命令模式 上面的 可以替換成 n 指定行數例如第一行 1s ...