使用命令将/etc/passwd第一列和最后一列交换位置

1.使用awk改变列的输出顺序,{}中“”中的内容会原封不动输出

[[email protected] ~]# awk -F ":" ‘{print$NF":"$2":"$3":"$4":"$5":"$6":"$1}‘/etc/passwd

2.使用变量等价替换,使用tr将空格替换为“:”

[[email protected] ~]# awk -F ":" ‘{a=$1;$1=$NF;$NF=a;print}‘/etc/passwd|tr " " ":"

3.使用awk内置参数指定输出分隔符

[[email protected] ~]# awk -F ":"‘{OFS=":";a=$1;$1=$NF;$NF=a;print}‘ /etc/passwd

4.使用反向引用改变输出顺序

[[email protected] ~]# sed -r ‘s#(^[^:]+)(:.*:)(.*$)#\3\2\1#g‘ /etc/passwd
时间: 2024-08-01 19:49:09

使用命令将/etc/passwd第一列和最后一列交换位置的相关文章

老男孩教育每日一题-第61天-使用命令调换 /etc/passwd 文件里所有的第一列和最后一列位置

老男孩教育每日一题-第61天-使用命令调换 /etc/passwd 文件里 root 位置和/bin/bash 位置?即将所有的第一列和最后一列位置调换? 例:默认:root:x:0:0:root:/root:/bin/bash 修改后:/bin/bash:x:0:0:root:/root:root 参考答案: 方法1:每列之前由冒号分隔,首先想到awk擅长取列,所以第一种方法使用awk,分隔符冒号 具体方法:每行分3组,第一组字母.数字.下划线.- 组成,第二组第一个冒号到最后一个冒号,第三组

Shell命令ls、passwd、cd、type、which、printenv、date、cal

Linux的基本原则:1.由目的单一的小程序组成:组合小程序完成复杂任务2.一切皆文件3.尽量避免捕获用户接口4.配置文件保存为纯文本格式GUI接口:双击鼠标CLI接口:命令提示符,prompt,bash(shell)#:root$:普通用户命令:命令会被shell送给内核,又内核判断是否具有执行权限以及能否执行,从什么地方开始执行.[[email protected] ~]# lss(通过shell返回的错误信息)-bash: lss: command not found命令格式:命令 选项

tcpdump命令行抓包(第一篇)

tcpdump可以获取流动在网卡上的数据 tcpdump [ -AdDefIKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ] [ -C file_size ] [ -G rotate_seconds ] [ -F file ] [ -i interface ] [ -m module ] [ -M secret ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount

linux命令useradd,userdel,passwd,groupadd,groupdel,su,usermod

Linux云创  标签:linux  useradd  userdel  passwd  groupadd  groupdel  usermod    发布于:2016年09月16日 useradd 命令 命令功能 useradd命令用于Linux中创建的新的系统用户. 命令语法 useradd(选项)(参数) 选项说明 一c〈备注〉:加上备注文字(腾云科技ty300.com).备注文字会保存在passwd的备注栏位中: 一d〈登入目录〉:指定用户登入时的启始同量: 一D:变更预设值: 一e〈有

Mysql的列索引和多列索引

Mysql数据库提供两种类型的索引,如果没正确设置,索引的利用效率会大打折扣. CREATE TABLE test ( id INT NOT NULL, last_name CHAR(30) NOT NULL, first_name CHAR(30) NOT NULL, PRIMARY KEY (id), INDEX name (last_name,first_name) ); 以上创建的其实是一个多列索引,创建列索引的代码如下: CREATE TABLE test ( id INT NOT N

mysql在表的某一位置增加一列、删除一列、修改列名

如果想在一个已经建好的表中添加一列,可以用以下代码: alter table 表名 add column 列名 varchar(20) not null; 这条语句会向已有的表中加入一列,这一列在表的最后一列位置.如果我们希望添加在指定的一列,可以用: alter table 表名 add column 列名 varchar(20) not null after user1; 注意,上面这个命令的意思是说添加addr列到user1这一列后面.如果想添加到第一列的话,可以用: alter tabl

检查外键列是否是索引列的两个语句

本文摘自<oracle 索引技术> 第37页和第38页 检查外键列是否是索引列的语句之一: select distinct a.owner  owner, a.constraint_name cons_name, a.table_name tab_name, b.column_name  cons_column, nvl(c.column_name,'***Check index***') ind_column from dba_constraints a,      dba_cons_col

散列算法与散列码

一.引入 1 /** 2 * Description:新建一个类作为map的key 3 */ 4 public class Groundhog 5 { 6 protected int number; 7 8 public Groundhog(){ 9 } 10 public Groundhog(int number) 11 { 12 this.number = number; 13 } 14 15 @Override 16 public String toString() 17 { 18 ret

使用sql语句创建修改SQL Server标识列(即自动增长列)

一.标识列的定义以及特点SQL Server中的标识列又称标识符列,习惯上又叫自增列.该种列具有以下三种特点:1.列的数据类型为不带小数的数值类型2.在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值3.列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列.由于以上特点,使得标识列在数据库的设计中得到广泛的使用.二.标识列的组成创建一个标识列,通常要指定三个内容:1.类型(type)在SQL Server 2000中,标识列类型必须是数值类型,如下:decima