Bash 如何获得“删除单词组合”;名称服务器:";不带引号,但保留';名称服务器:一些字母/数字';在sed中

Bash 如何获得“删除单词组合”;名称服务器:";不带引号,但保留';名称服务器:一些字母/数字';在sed中,bash,shell,sed,Bash,Shell,Sed,我有以下几行: 名称服务器:NS92.WORLDNIC.COM(或其他值) 名称服务器: 名称服务器: 名称服务器: 请参阅屏幕截图以更好地理解: 如何去掉“Name Server:”行,但保留带有值的行 我尝试了/Name服务器:{0,0}/d,但它删除了所有行 谢谢这对我很有用: echo "Name Server:NS92.WORLDNIC.COM" | sed 's/^Name Server://' 我能够让以下两条线路工作: 我相信[:space:]符合POSIX标准: cat te

我有以下几行:

名称服务器:NS92.WORLDNIC.COM(或其他值)
名称服务器:
名称服务器:
名称服务器:

请参阅屏幕截图以更好地理解: 如何去掉“Name Server:”行,但保留带有值的行

我尝试了/Name服务器:{0,0}/d,但它删除了所有行

谢谢

这对我很有用:

echo "Name Server:NS92.WORLDNIC.COM" | sed 's/^Name Server://'

我能够让以下两条线路工作:

我相信[:space:]符合POSIX标准:

cat test |sed '/^Name Server:[[:space:] \t]\?$/d'
另一种选择是:

cat test |sed '/^Name Server:[ \t]\?$/d'
我还发现在sed中,大多数元字符(例如+?)都需要转义,sed才能正确识别它们。

cut-d:“-f2cut -d ":" -f 2 < ff | sed '/^$/d'

使用“:”作为分隔符并拆分行(-d选项),然后选择第二个字段(-f选项)

谢谢,它成功了。你能解释一下为什么后面有空格吗?我已经通过记事本++检查了“:”后面的\n项,而且我很难理解为什么有$。应该注意,它在没有制表符的情况下工作。您可以避免使用“cat”。只需使用:sed'/^Name Server:[\t]\?$/d'