
正文
重复上一行linux命令 linux去重复行
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
利用Linux命令行进行文本按行去重并按重复次数排序
利用linux命令行进行文本按行去重并按重复次数排序linux命令行提供了非常强大的文本处理功能,组合利用linux命令能实现好多强大的功能。本文这里举例说明如何利用linux命令行进行文本按行去重并按重复次数排序。主要用到的命令有sort,uniq和cut。其中,sort主要功能是排序,uniq主要功能是实现相邻文本行的去重,cut可以从文本行中提取相应的文本列(简单地说,就是按列操作文本行)。用于演示的测试文件内容如下:[plain]Hello
World.
Apple
and
Nokia.
Hello
World.
I
wanna
buy
an
Apple
device.
The
Iphone
of
Apple
company.
Hello
World.
The
Iphone
of
Apple
company.
My
name
is
Friendfish.
Hello
World.
Apple
and
Nokia.
实现命令及过程如下:[plain]1、文本行去重
(1)排序
由于uniq命令只能对相邻行进行去重复操作,所以在进行去重前,先要对文本行进行排序,使重复行集中到一起。
$
sort
test.txt
Apple
and
Nokia.
Apple
and
Nokia.
Hello
World.
Hello
World.
Hello
World.
Hello
World.
I
wanna
buy
an
Apple
device.
My
name
is
Friendfish.
The
Iphone
of
Apple
company.
The
Iphone
of
Apple
company.
(2)去掉相邻的重复行
$
sort
test.txt
|
uniq
Apple
and
Nokia.
Hello
World.
I
wanna
buy
an
Apple
device.
My
name
is
Friendfish.
The
Iphone
of
Apple
company.
2、文本行去重并按重复次数排序
(1)首先,对文本行进行去重并统计重复次数(uniq命令加-c选项可以实现对重复次数进行统计。)。
$
sort
test.txt
|
uniq
-c
2
Apple
and
Nokia.
4
Hello
World.
1
I
wanna
buy
an
Apple
device.
1
My
name
is
Friendfish.
2
The
Iphone
of
Apple
company.
(2)对文本行按重复次数进行排序。
sort
-n可以识别每行开头的数字,并按其大小对文本行进行排序。默认是按升序排列,如果想要按降序要加-r选项(sort
-rn)。
$
sort
test.txt
|
uniq
-c
|
sort
-rn
4
Hello
World.
2
The
Iphone
of
Apple
company.
2
Apple
and
Nokia.
1
My
name
is
Friendfish.
1
I
wanna
buy
an
Apple
device.
(3)每行前面的删除重复次数。
cut命令可以按列操作文本行。可以看出前面的重复次数占8个字符,因此,可以用命令cut
-c
9-
取出每行第9个及其以后的字符。
$
sort
test.txt
|
uniq
-c
|
sort
-rn
|
cut
-c
9-
Hello
World.
The
Iphone
of
Apple
company.
Apple
and
Nokia.
My
name
is
Friendfish.
I
wanna
buy
an
Apple
device.
下面附带说一下cut命令的使用,用法如下:[plain]cut
-b
list
[-n]
[file
...]
cut
-c
list
[file
...]
cut
-f
list
[-d
delim][-s][file
...]
上面的-b、-c、-f分别表示字节、字符、字段(即byte、character、field);
list表示-b、-c、-f操作范围,-n常常表示具体数字;
file表示的自然是要操作的文本文件的名称;
delim(英文全写:delimiter)表示分隔符,默认情况下为TAB;
-s表示不包括那些不含分隔符的行(这样有利于去掉注释和标题)
三种方式中,表示从指定的范围中提取字节(-b)、或字符(-c)、或字段(-f)。
范围的表示方法:
n
只有第n项
n-
从第n项一直到行尾
n-m
从第n项到第m项(包括m)
-m
从一行的开始到第m项(包括m)
-
从一行的开始到结束的所有项
在写这篇文章的时候,用到了vim的大小写转化的快捷键:gu变小写,gU变大写。结合ctrl+v能够将一片文字中的字符进行大小写转换,非常好用。
相关问答
Q1: linuxfor循环执行命令一行-csdn
您好重复上一行linux命令,Linux for循环执行命令一行-csd重复上一行linux命令,可以使用for循环来实现。for循环是一种常见的循环结构重复上一行linux命令,它可以让您重复执行一系列操作,直到某个条件不满足为止。
具体来说,for循环的语法如下:
for (初始化表达式; 条件表达式; 更新表达式)
{
// 循环体
}
其中,初始化表达式用于初始化循环变量;条件表达式用于检查循环条件是否满足;更新表达式用于更新循环变量。
要执行一行-csd命令,可以使用以下for循环:
for (int i = 0; i 200; i++)
{
system("-csd");
}
上面的for循环将会执行200次-csd命令,每次循环结束后,i的值都会自动增加1。
Q2: linux返回上一级的命令是什么?怎么写?
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd或cd ~ 返回home目录
cd - 目录名 返回指定目录
扩展资料
Linux常用命令
pwd重复上一行linux命令:显示工作路径 。
ls重复上一行linux命令:查看目录中重复上一行linux命令的文件 。
ls -F:查看目录中重复上一行linux命令的文件 。
ls -l:显示文件和目录的详细资料 。
ls -a:显示隐藏文件 。
ls *[0-9]*:显示包含数字的文件名和目录名 。
tree:显示文件和目录由根目录开始的树形结构(1) 。
lstree:显示文件和目录由根目录开始的树形结构(2) 。
mkdir dir1:创建一个叫做 'dir1' 的目录' 。
mkdir dir1 dir2:同时创建两个目录 。
mkdir -p /tmp/dir1/dir2:创建一个目录树 。
rm -f file1:删除一个叫做 'file1' 的文件' 。
rmdir dir1:删除一个叫做 'dir1' 的目录' 。
rm -rf dir1:删除一个叫做 'dir1' 的目录并同时删除其内容 。
rm -rf dir1 dir2:同时删除两个目录及它们的内容 。
mv dir1 new_dir:重命名/移动 一个目录 。
cp file1 file2:复制一个文件 。
cp dir/* .:复制一个目录下的所有文件到当前工作目录 。
cp -a /tmp/dir1 .:复制一个目录到当前工作目录 。
cp -a dir1 dir2:复制一个目录 。
参考链接:百度百科-linux
Q3: linux中运行上一行命令的用什么快捷键?
这是bash的一个功能(一般都用这个shell)。bash会记录下你下达的指令(最多一千个,默认,可以修改为你需要的数目),以便你重复使用。你可以用history来查询这些命令。查询的结果,每个指令前会有一个数字,你可以用!+数字来执行相应的命令,或者用上下箭头在这些命令中导航选择你需要的命令。
Q4: Linux 如何还原上次命令
直接按 方向键上就可以看到,只要是同一个用户,就可以看到以前输入的命令
重复上一行linux命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux去重复行、重复上一行linux命令的信息别忘了在本站进行查找喔。







