2
A
回答
1
你可以嘗試這樣的:
awk 'NR== 71 || NR == 116 || NR == 211 {sub(/ *$/,"",$0)}{print $0}'
或
sed '71s/ *$//;116s///;211s///'
1
sed '71bl;116bl;211bl;b;:l;s/[ ][ ]*$//' input
對於任何指定的行,此腳本跳轉到標籤l
。其他線路將跳到腳本的末尾,僅有branch
。
而且一個awk的解決方案:
awk -v k="71,116,221" 'BEGIN{split(k,a,",")}
(NR in a) { sub(/ *$/,"",$0) }1' input
0
這可能爲你工作(GNU SED):
sed -r '/\s+$/!b;71s///;116s///;221s///' file
或者是:
sed -e '/ *$/!b' -e '71s///' -e '116s///' -e '221s///' file
或已經說過:
sed -e '71ba' -e '116ba' -e '221ba' -e 'b' -e ':a' -e 's/ *$//' file
相關問題
- 1. sed命令脫光匹配發現
- 2. sed命令行
- 3. SED用於在匹配特定圖案後打印線條的命令
- 4. 使用sed命令,替換行,但不能匹配模式
- 5. 只有在sed中匹配時纔打印特定行號
- 6. 刪除匹配行的sed
- 7. 使用SED代替命令輸出的特定行
- 8. 如何在perl sed-like find/replace命令中跳過不匹配?
- 9. Linux上的sed命令只匹配1,在Solaris上找到多個匹配項
- 10. 在sed中匹配字符串中的特定子字符串
- 11. sed在特定匹配行末尾附加東西
- 12. 將匹配字符串追加到特定行(sed/bash)
- 13. 用於匹配具有匹配第一個字段的行的命令行(sed,awk等)
- 14. 運行特定的命令
- 15. 與一個詞匹配的unix sed命令
- 16. 餵養通過命令sed的匹配塊
- 17. 多個替換命令在匹配部分線路時的sed
- 18. sed命令來刪除啓動模式匹配特殊字符在它
- 19. mysql命令匹配
- 20. grep命令匹配
- 21. sed多行範圍匹配
- 22. 命令行查找,sed,exec
- 23. 躲過行情sed命令
- 24. 在Unix中替換行的sed命令
- 25. 如何使用RegEx匹配Unix sed命令中特定字符之前或之後的整數?
- 26. Sed:在's'命令行匹配正則表達式的反向引用substring
- 27. Sed - 如果模式不匹配,停止多部分命令?
- 28. 這個sed命令爲什麼不匹配空格?
- 29. 兩個上相同sed命令模式匹配
- 30. SED命令匹配正則表達式,但不能替代
我想過發佈你的'sed'解決方案,但有一點改進(我認爲),如果你把正則表達式部分留空,它會佔用最後一個。所以只需要寫一次(第一行),然後像:'... 116s ///; ...' – Birei
好點 - 我忘記了 - 我已經更新了答案 –