如何检查文本中是否存在www?如果不是 - 添加www,但如果存在则不要触摸
例如
google.com
www.google.com
www.maps.google.com
test.test.test.com
输出应为
www.google.com
www.google.com
www.maps.google.com
www.test.test.test.com
我发现这样的一些:
awk -F. '{print "www." $0; next}; {print}'
但是这总是添加www
答案 0 :(得分:4)
使用awk
awk '!/^www\./ {$0="www." $0}1' file
www.google.com
www.google.com
www.maps.google.com
www.test.test.test.com
答案 1 :(得分:0)
使用sed你可以这样做:
sed '/^ *www/!s/\(.\)/www.\1/' file
www.google.com
www.google.com
www.maps.google.com
www.test.test.test.com
使其成为内联编辑:
sed -i.bak '/^ *www/!s/\(.\)/www.\1/' file
您可以在awK中执行此操作:
awk -F'.' '$1!="www"{$0="www." $0}1' file
www.google.com
www.google.com
www.maps.google.com
www.test.test.test.com
答案 2 :(得分:0)
使用shell:
echo $1 | grep -q ^www. || echo -n www.; echo $1
答案 3 :(得分:0)
另一个选择
$ site='www.stackoverflow.com'
$ [[ $site != www.* ]] && echo "www.$site" || echo "$site"
www.stackoverflow.com
$ site='stackoverflow.com'
$ [[ $site != www.* ]] && echo "www.$site" || echo "$site"
www.stackoverflow.com
答案 4 :(得分:0)
如果你有Ruby
# echo "test.test.test.com" | ruby -e 'puts "www.#{gets.chomp}" if $_ !~/www/ '
www.test.test.test.com