我將sed作爲shell腳本的一部分運行,以清理綁定日誌以便插入數據庫。將SED限制爲行的前10個字符
一個sed的命令如下:
sed -i 's/-/:/g' $DPath/named.query.log
這被證明是有問題的,因爲它破壞了任何資源請求還包括一個破折號(我使用的是:作爲分隔符的一個awk語句再向下)。
我的問題是我如何限制上面的sed命令只有行的前十個字符?我還沒有看到一個特定的開關可以做到這一點,而且我遠遠不夠使用RegEx,甚至無法開始開發一個可行的開關。我不能只用正則表達式來匹配前面的數字,因爲模式可能是資源請求的一部分。哎呀,我甚至無法使用#### - ## - ##的模式匹配,因爲它可能是資源的一部分。
任何想法,非常感謝。
先生,我認爲這樣做。非常感謝你! – MikeH
甚至(未經測試)'perl -pe'substr($ _,0,10)=〜s /:/ -/g'file' – tripleee
@tripleee:您的(未經測試的)評論對我無效(但我不知道Perl)。 –