前言:
当前各位老铁们对“oracle spool 去空格”大概比较看重,大家都想要知道一些“oracle spool 去空格”的相关内容。那么小编同时在网上搜集了一些有关“oracle spool 去空格””的相关文章,希望同学们能喜欢,各位老铁们一起来了解一下吧!大家都知道,Linux系统中的账户信息都存放在/etc/passwd这个文件中,通过查看这个文件我们就可以了解到系统内每个账号的详细信息。今天做实验,建立了很多账号,手工挨个删除真的很慢,于是就用前段时间学习的awk命令删除了指定范围的账号,方便快捷。
命令我是这样写的:
[root@DCGH ~]# awk -F ":" 'NR>=22&&NR<=28{cmd="userdel -r";user=$1;system(cmd" "user)}' /etc/passwd
这行命令中,我删除了/etc/passwd中第22至28行的账号,连带用户目录一起删除。看着效率还行,于是我就拓展了一下,删除指定行的账号,命令如下:
[root@DCGH ssh]# awk -F ":" '{if(NR==11){print NR ":" $1}else if(NR==12){print NR ":" $1}}' /etc/passwd
11:games
12:ftp
[root@DCGH ssh]# awk -F ":" 'BEGIN{cmd="userdel -r"}{if(NR==11){user=$1;system(cmd" "user)}else if(NR==12){user=$1;system(cmd" "user)}}' /etc/passwd
userdel:组"games"没有移除,因为它不是用户 games 的主组
userdel: games 邮件池 (/var/spool/mail/games) 未找到
userdel:/usr/games 并不属于 games,所以不会删除
userdel: ftp 邮件池 (/var/spool/mail/ftp) 未找到
userdel:未找到 ftp 的主目录"/var/ftp"
[root@DCGH ssh]# nl /etc/passwd
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
11 nobody:x:99:99:Nobody:/:/sbin/nologin
12 avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
13 systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
14 systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin
15 dbus:x:81:81:System message bus:/:/sbin/nologin
16 polkitd:x:997:995:User for polkitd:/:/sbin/nologin
17 tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
18 postfix:x:89:89::/var/spool/postfix:/sbin/nologin
19 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
20 tcpdump:x:72:72::/:/sbin/nologin
awk -F ":" '{if(NR==11){print NR ":" $1}else if(NR==12){print NR ":" $1}}' /etc/passwd
这一行命令中,我们打印出了需要删除账号名称。接着使用system函数拓展了一下,把账号名称的值赋给变量user。账号删除(选项r:删除主目录和邮件池)命令为:userdel -r,值赋给变量cmd。注意:system()函数括号内的双引号中间是一个空格。于是命令就被拓展成这样了:
awk -F ":" 'BEGIN{cmd="userdel -r"}{if(NR==11){user=$1;system(cmd" "user)}else if(NR==12){user=$1;system(cmd" "user)}}' /etc/passwd
如果还需要删除其他指定行的账号,再添加else if语句修改一下NR值就可以了。这两行命令应该还可以拓展到其他地方使用,欢迎有想法的小伙伴提出来。当然,我这个命令语句写得也很次,在各位大大们面前班门弄斧了,欢迎指正。
标签: #oracle spool 去空格