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
好点 - 我忘记了 - 我已经更新了答案 –