每次我在Kindle應用程式中復制一些文本時,復制的內容總是附加一些額外的東西,如(Kindle位置155)。Icon Books。Kindle Edition.和空行。
我想在將其粘貼到其他地方之前洗掉這些不相關的資訊。
例如,這是一個可能的從剪貼板輸入的資訊,模仿Kindle應用程式的復制結果(注意空格在Kindle Edition.的末尾的字符):
without
馬克-福賽斯 The Etymologicon (Kindle Location 4047) 。Icon Books. Kindle版。
預期輸出到剪貼板的結果應該只是(空行也應該被洗掉):
without
我已經搜索并嘗試了類似于這個使用grep的東西,它可以作業。
pbpaste | grep -v -e'Kindle Edition. $' -e '^s $' | pbcopy
在perl中,有沒有類似的東西來實作同樣的事情? 像這樣:
pbpaste | grep -v -e'Kindle Edition $' -e '^s $' | pbcopy
pbpaste | perl -Mutf8::all -E'$_ =~ s/Kindle Edition. $|^s $//mg; print $_' | pbcopy
這個似乎不起作用。
這個似乎不起作用。
uj5u.com熱心網友回復:
你什么都不看。你的模式有錯誤。而且看起來你試圖洗掉檔案中任何位置的東西,而不是只在檔案末尾。
-n(由-p暗示)一次讀取一行輸入,為每一行執行程式。但最簡單的方法是一次性讀取整個輸入,只在檔案的末尾洗掉匹配的內容。-0777將定義一個行為整個檔案,所以我們將使用它。
pbpaste | perl -0777pe's/^
.* Kindle Edition.s*z//mg'| pbcopy
測驗:
$ cat a; echo END
foo
bar
馬克-福賽斯 The Etymologicon (Kindle Location 4047). Icon Books. Kindle版。
結束
$ perl -0777pe's/^
.* Kindle Edition.s*z//mg' a; echo END
foo
bar
結束
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/311316.html
標籤:
