0
這是一直困擾我一段時間一個較爲簡單的任務最後N(新行)。我有以下幾點:XMLStarlet刪除使用桑達
homepage=$(curl "https://example.com/")
xmlstarlet --quiet fo --html <<<"$homepage" |
xmlstarlet sel -T -t \
-m "//*[@id='financial']/tbody/tr/td" \
--if 'not(starts-with(a//@href,"http"))' \
-o 'https://example.com' \
--break \
-v 'a//@href' \
-o '/?start=1' \
-o '&' \
-o 'end=2' -n | \
sed '${/^$/d;}' \
>> "results.txt"
我想要做的就是刪除最後換行符通過xmlstarlet
在-o 'end=2' -n | \
生產。當它到達終點,如果鏈接列表,它仍然會產生-n
(新行),如果它在那裏繼續添加更多的鏈接,但實際上我想避免的最後-n
實例各自最後href
。
我sed '${/^$/d;}' \
認爲應該這樣做將返回以下錯誤:
sed: ${/^$/d;}: No such file or directory
sed: : No such file or directory
它並不會自動管以前STDOUT
到sed
STDIN
正確。在我之前questions一個我曾與類似的東西,這sed
命令爲我工作較早:
# The -e flag
sed -e '${/^$/d;}'
這對我來說沒有工作:
sed 's/\\&/\&/g'
在另一方面,我也嘗試使用無論是。
這能直接從XMLStarlet,而無需添加額外的sed
管辦?
什麼是錯我的sed
?什麼是正確的sed
方法?
後\ – Cyrus
喜@Cyrus刪除所有空格,我不完全理解。根據這個[問題](https://stackoverflow.com/questions/369758/how-to-trim-whitespace-from-a-bash-variable)我發現'sed -e's/[[:space: ]] * $ //''應該刪除尾隨的空格。但是,這並不會在最後一個URL後面刪除**換行符**。你能否提供一個例子? –
你的代碼包含這兩行:'-o'end = 2'-n | \'和'sed'$ {/^$/d;}'\'。在\之後都包含一個whilespace。刪除這些空格。 – Cyrus