我想根據文件$ key中定義的「字符串串」對替換文本。Grep在Perl替換(RHS)內
採樣輸入文件$輸入
a b c foo
d e f moo
g h i boo
預定義的 「鑰匙」 文件$關鍵
cow moo
code foo
ghost boo
cheer woo
所需的輸出
a b c code
d e f cow
g h i ghost
我ATTE MPT
perl -pe 's/(.*?)(\woo)/$1qq{grep -oP ".*(?=\s$2)" $key}/e' $input > $output
錯誤返回
syntax error at -e line 1, near "$1qq{grep -oP ".*(?=\s$2)" $key}"
syntax error at -e line 1, near "s/(.*?)(\woo)/$1qq{grep -oP ".*(?=\s$2)" $key}/ee"
任何幫助,將不勝感激。
建議更好的方法,以達到預期的效果是非常歡迎的,但一個公認的答案會非常還包括用perl substition溶液或評論。
尼斯簡潔的解決方案,謝謝你的貢獻。我很想知道如果關鍵文件行是'zyx code foo'等,並且所需的輸出行是'abczyx code'等(輸入行與'abc foo'等相同),你將如何適應 – okapiho 2015-03-07 11:16:02
@okapiho檢查更新。 – 2015-03-08 08:23:11