Linux如何删除某一列 (删除某一列 linux)

在日常的工作中,我们经常需要处理各种表格数据。而在表格数据中,有时候我们需要删除某些列。本文将介绍在Linux中如何删除某一列,并提供两种方法供参考。

方法一:使用cut命令

cut命令是一个强大的文件处理命令,它可以从文本文件中提取列。cut命令的基本语法如下:

“`

cut [选项] 文件名

“`

其中,选项包括:

– -d:指定字段分隔符,默认为制表符;

– -f:指定列的编号,列之间用逗号分隔;

例如,我们要删除一个名为data.txt的表格文件中的第二列,我们可以使用以下命令:

“`

cut -d ‘,’ -f 1,3- data.txt > newdata.txt

“`

在这个命令中,-d 选项指定了分隔符为逗号,-f 选项指定了列编号。1和3-表示保留之一列和第三列到最后一列,其它的列则被删除。结果被输出到新文件newdata.txt中。

此外,如果我们要删除表格中最后一列,可以使用以下命令:

“`

cut -d ‘,’ -f 1-$(($(head -n 1 data.txt | grep -o ‘,’ | wc -l)+1)) data.txt > newdata.txt

“`

在这个命令中,$(($(head -n 1 data.txt | grep -o ‘,’ | wc -l)+1)) 表示计算表格中的列数,选择保留从之一列到倒数第二列,即删除最后一列。

方法二:使用awk命令

awk是一种强大的文本处理工具,它可以处理文本文件中的数据,并输出格式化的结果。在这里,我们可以使用awk命令删除表格中的一列。它的基本语法如下:

“`

awk ‘{print $1, $3, $4, $5, …}’ 文件名

“`

其中, $1、$3、$4、$5表示需要保留的列的编号,用空格分隔

例如,我们要删除一个名为data.txt的表格文件中的第二列,我们可以使用以下命令:

“`

awk ‘{print $1,$3,$4,$5}’ FS=, OFS=, data.txt > newdata.txt

“`

在这个命令中,FS=,指定分隔符为逗号,OFS=,指定输出分隔符为逗号。$1、$3、$4、$5表示保留的列的编号,用逗号分隔。最后结果被输出到newdata.txt文件中。

此外,如果我们要删除表格中的最后一列,可以使用以下命令:

“`

awk ‘{NF–;print}’ FS=, OFS=, data.txt > newdata.txt

“`

在这个命令中,NF–表示删除当前行的最后一列,print则表示输出结果。

Linux提供了多种命令来处理文本文件中的数据。在此,我们介绍了使用cut和awk命令删除表格中的某一列的方法。当然,如果你想进行更为复杂的操作,可以结合其他命令一起使用,例如sed和grep等。希望这篇文章能够帮助你更好地处理表格数据。

相关问题拓展阅读:

Linux中删除一个非空子目录/tmp,用什么命令?

bairm -rf 目录名。

rmdir功能:删除空目录。语法:rmdir dirname

说明:dirname表示目录名。该命令从一个目录中删除一个或多个子目录项。需要特别注意的是,一个目录被删除之前必须是空的。(注意,rm – r dir命令可代替rmdir,但是有很大危险性。)删除某目录时也必须具有对父目录的写权限。

命令中各选项的含义为:- p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。

扩展资料:

通常见到的使用字符操作界面的人机接口,例如dos。我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令,例如dos命令就是控制台命令。

要了解的是基于Linux操作系统的基本控制台命令。有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的。

参考资料来源:

百度百科-linux命令

1、首先打开SecureCRT,选择要登录的系统IP,点击连接。

2、然后使用cd 命名切换到要删除文件所在的目录,比如说目录/123。

3、接着使用ls命令列出

文件夹

里面的文件, 比如说目录123里面的123.txt 文件。

4、然后使用rm命令删除要删除的文件,比如删除123.txt。

5、执行命令之后会提示是否要删除文件,输入 y , 然后回车就删除了,然后使用ls命名查看,文件已经不存在了。

rm -rf /tmp

这个目录是系统目录,建议你不要删除

Linux删除目录下所有文件包括子目录方法:rm -rf 目录名。

不能使用rmdir,rmdir删除空目录。

(1)rmdir功能:删除空目录。

语法:rmdir dirname

说明:dirname表示目录名。该命令从一个目录中删除一个或多个子目录项。需要特别注意的是,一个目录被删除之前必须是空的。(注意,rm – r dir命令可代替rmdir,但是有很大危险性。)删除某目录时也必须具有对父目录的写权限。

命令中各选项的含义为:

– p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。

例如:

$ rmdir – p /usr/xu/txt

将/usr/xu/txt目录删除。

改变工作目录、显示目录内容命令

(2)linux删除文件或目录命令rm

用户可以用rm命令删除不需要的文件。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是断开了链接,原文件保持不变。

rm命令的一般形式为:rm … 目录… 删除指定的(即解除链接)。

-ddirectory 删除可能仍有数据的目录 (只限超级用户)

-fforce略过不存在的文件,不显示任何信息

-iinteractive 进行任何删除操作前必须先确认

-r/R –recursive 同时删除该目录下的所有目录层

-vverbose 详细显示进行的步骤

help显示此帮助信息并离开

version 显示版本信息并离开

要删除之一个字符为‘-’的文件 (例如‘-foo’),请使用以下其中一种方法:

rm — -foo

rm ./-foo

请注意,如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。如果想保证

该文件的内容无法还原,请考虑使用 shred。

范例:

删除所有rb语言程序档;删除前逐一询问确认 :

rm -i *.rb

将 Finished 子目录及子目录中所有档案删除 :

rm -r Finished

将 Finished 子目录及子目录中所有档案删除,并且不用–确认 :

Linux命令

快照功能:记录当前的硬盘的状态。刚建快照时快照占用内存为0,标记了当前硬盘的存储状态。当虚拟机对快照标记的内容改写时,会将改写的内容存储进快照,与未改写的部分整合得到完整的快照。当快照标记的部分被完全改写,那么快照存储空间完整记录了当时拍摄时的内存状态。

参数形式

之一种:参数用一横的说明后面的参数是字符形式。

第二种:参数用两横的说明后面的参数是单词形式。

第三种:参数前有横的是 System V风格。

第四种:参数前没有横的是 BSD风格。

cat、more、less、head、tail命令的比较:

cat命令可以一次显示整个文件,如果文件比较大,使用不是很方便;

more命令可以让屏幕在显示满一屏幕时暂停,按空格往前翻页,按b往后翻页。

less命令也可以分页显示文件,和more命令的区别就在于: 支持上下键卷动屏幕、查找;不需要在一开始就读取整个文件,打开大文件时比more、vim更快。

head命令用于查看文件的前n行。

tail命令用于查看文件的后n行,加上-f命令,查看在线日志非常方便,可以打印最新增加的日志。

一般模式:

编辑模式:

命令模式:

编码

多行操作(列编辑模式)

插入:ctrl+v进入列编辑模式,上下移动光标选择需要插入的位置,然后输入大写I,输入需要文本,最后按esc键退出,就会发现文本会在选择的多行中插入。

删除:ctrl+v进入列编辑模式,上下移动光标选中需要删除的部分,然后按d,就会删除选中的内容。

①head:显示文件头部内容

②tail:输出文件尾部内容

注意:用vim和vi修改内容会删除源文件并生成新文件,所以tail -f会失效。需要用到

追加和覆盖语句(>或>>),才能被tail -f监视到。

一般用于查看小文件

查看压缩文件中的文本内容

例:

①more:文件内容分屏查看器

②less:分屏显示文件内容,效率比more高

1、简单读取

运行脚本如下

测试结果为:

2、-p 参数,允许在 read 命令行中直接指定一个提示。

运行脚本如下

测试结果为:

echo (输出内容到控制台)

输出给定文本的sha256加密后的内容

①显示当前时间信息

②显示当前时间年月日

③显示当前时间年月日时分秒

④显示昨天

⑤显示明天时间

⑥显示上个月时间

需要注意的是取下个月的命令存在bug,执行如下命令会得到21-10,但是正常应该得到21-09,需要注意

date -d “+1 month” +%y-%m

⑦修改系统时间

⑧获取当前时间戳

获取秒时间戳: date +%s

获取毫秒时间戳:$

查看日历

(1)查看当前月的日历

(2)查看2023年的日历

例:

对比gzip/gunzip,zip/unzip可以压缩文件和目录且保留源文件。

①zip:压缩

②unzip:解压缩

只能压缩文件不能压缩目录,不保留原来的文件。

gzip 文件 (只能将文件压缩为*.gz文件)

gunzip 文件.gz (解压缩文件命令)

例: crontab -e

(1)进入crontab编辑界面。会打开vim编辑你的工作。

(2)每隔1分钟,向/root/bailongma.txt文件中添加一个11的数字

*/1 * * * * /bin/echo ”11” >> /root/bailongma.txt

(3)可以用tail -f 目标文件来实施监控追加的内容

查看日志

可以用tail -f /var/log/cron.log观察

Cron表达式见文章:

ls

cd

例:

cd -P $(dirname $p1) ; pwd 先跳转到文件的所在目录,再打印$p1文件的实际路径

概述

①cp(copy):只能在本机中复制

②scp(secure copy):可以复制文件给远程主机

scp -r test.sh hxr@hadoop102:/root

③rsync(remote sync):功能与scp相同,但是不会改文件属性

rsync -av test.sh test.sh hxr@hadoop102:/root

④nc(netcat):监听端口,可以实现机器之间传输文件。

nc -lk 7777 (-l表示listen,-k表示keep)

强制覆盖不提示的方法:\cp

例:scp -r test.sh hxr@bigdata1:/root

例:rsync -av test.sh hxr@bigdata1:/root

例:

nc -lp> nc_test.txt

nc -w 1 hadoop102 shutdown > reboot > halt

(1)sync(功能描述:将数据由内存同步到硬盘中)

(2)halt(功能描述:关闭系统,等同于shutdown -h now 和 poweroff)

(3)reboot(功能描述:就是重启,等同于 shutdown -r now)

(4)shutdown

安装

yum install -y telnet-server telnet

ls -i 显示文件的节点号

find -inum 节点号 -delete 删除指定的节点即可删除对应的文件

启动一个服务: systemctl start postfix.service

关闭一个服务: systemctl stop postfix.service

重启一个服务: systemctl restart postfix.service

显示一个服务的状态: systemctl status postfix.service

在开机时启用一个服务: systemctl enable postfix.service

在开机时禁用一个服务: systemctl disable postfix.service

注:在enable的时候会打印出来该启动文件的位置

列出所有已经安装的服务及状态:

systemctl list-units

systemctl list-unit-files

查看服务列表状态:

systemctl list-units –type=service

查看服务是否开机启动: systemctl is-enabled postfix.service

查看已启动的服务列表: systemctl list-unit-files | grep enabled

查看启动失败的服务列表: systemctl –failed

查看服务日志: journalctl -u postfix -n 10 -f

命令类似systemctl,用于操作native service。

添加脚本为服务(需要指定启动级别和优先级): chkconfig –add

删除服务: chkconfig –del

单独查看某一服务是否开机启动的命令 : chkconfig –list

单独开启某一服务的命令 : chkconfig on

单独关闭某一服务的命令: chkconfig off

查看某一服务的状态: /etc/intd.d/ status

启用服务就是在当前”runlevel”的配置文件目录 /etc/systemd/system/multi-user.target.wants 里,建立 /usr/lib/systemd/system 里面对应服务配置文件的软链接;禁用服务就是删除此软链接,添加服务就是添加软连接。

su 用户名称 (切换用户,只能获得用户的执行权限,不能获得环境变量)

su – 用户名称(切换到用户并获得该用户的环境变量及执行权限)

echo $PATH 打印环境变量

设置普通用户具有root权限

修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下 所示:

或者配置成采用sudo命令时,不需要输入密码

修改完毕,现在可以用hxr 帐号登录,然后用命令 sudo ,即可获得root权限进行操作。

以azkaban用户执行引号中的命令

gpasswd -d 将用户从组中删除

gpasswd -a 将用户加入到组中

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对 /etc/group文件的更新。

0首位表示类型 – 代表文件 d 代表目录 l 链接文档(link file)

三种特殊权限suid、sgid、sticky

例子:

变更文件权限方式一

例:chmod u-x,o+x houge.txt

变更文件权限方式二

例:chmod -R/mnt/ 修改整个文件夹的文件权限

在linux中创建文件或者目录会有一个默认权限的,这个默认权限是由umask决定的(默认为0022)。umask设置的是权限的“补码”,而我们常用chmod设置的是文件权限码。一般在/etc/profile 、~/.bashprofile 或者 ~/.profile中设置umask值。

umask计算

如root用户的默认umask为0022(之一个0 代表特殊权限位,这里先不考虑),创建的文件默认权限是644(即默认666掩上umask的022),创建的目录是755(即默认777掩上umask的022)。

对于root用户的umask=022这个来说,777权限二进制码就是(111)(111)(111),022权限二进制码为(000)(010)(010)。

上面就是一个umask的正常计算过程,但是这样实在是太麻烦了。我们使用如下的简单的方法快速计算。

上面的这个方法计算是非常方便的, 为何得到奇数要+1呢?

文件的更大权限是666,都是偶数,你得到奇数,说明你的umask有奇数啊,读为4,写为2,都是偶数,说明你有执行权限的。

就按照上面的umask=023为例,在计算其他用户权限的时候6-3=3 ,6是读写,3是写和执行,其实应该是读写权限减去读权限的得到写权限的,相当于我们多减去了一个执行权限。所以结果加1。

umask修改

如果想单独修改某个文件夹的新建文件的权限,可以使用setfacl命令。

例:递归改变文件所有者和所有组 chown -R hxr:hxr /mnt

删除某一列 linux的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于删除某一列 linux,Linux如何删除某一列,Linux中删除一个非空子目录/tmp,用什么命令?,Linux命令的信息别忘了在本站进行查找喔。


数据运维技术 » Linux如何删除某一列 (删除某一列 linux)