Linux命令合并重复行 linux合并同名文件夹

Linux相关使用介绍Linux命令分为内部命令(shell自带的命令)和外部命令(不是shell自带的命令 , 由用户安装),怎么鉴别是内部命令和外部命令呢?可以通过type命令来鉴别
什么是shell呢?shell是一个程序,常用的有bash shell,平时我们通过用户名和密码登录到linux , 其实就是登录到bash shell程序,通过bash shell来操作linux内核
命令执行流程
那岂不是说使用外部命令效率会很慢吗?
其实一点都不慢,它会去PATH环境变量设置的一堆目录中查找
cd is a shell builtin 表示内部命令
ifconfig is hashed (/usr/sbin/ifconfig) 表示外部命令
cd命令切换文件夹
现在我们cd /usr/sbin
通过cat命令查看文件内容
通过cat ifconfig来查看ifconfig,发现是乱码文件
file命令查看文件类型
输入file ifconfig
从输出信息可以看出它是一个二进制可执行文件
whereis命令查看文件位置
find / -name jdk
echo命令用户打印信息,相当于java中的system.out.println
可以使用回车查看下一行、空格查看下一页、q退出
一般使用man查看外部命令 , help查看内部命令
查看linux下的应用和应用的进程号
当我们在这个窗口中输入kill -9 1593的话,另外一个正在编辑文件的进程就会退出
在前面我们已经讲过,bash shell程序在执行命令的一个过程及原理,对于外部命令,它会去PATH这个环境变量中查找执行命令所在的路径,当然在去PATH中寻找之前会先去hash表中查找这个命令有没有执行过,执行过的话会记录在hash表中,则此次查找只需从hash表中就可以很方便的找到
查看分区信息 -h 表示文件大小后面会显示文件大小
查看文件的使用情况
使用man ls 查看ls命令的相关介绍
-a:可以查看隐藏文件
-l:以长列表的形式展示文件列表信息
第一位 -:表示文件 , d表示文件夹 , b表示块设备文件,c表示字符设备文件,p表示命令管道文件,s表示套接字文件,从第二位开始往后数九位表示属主权限(每三位一组 rwx:读、写、执行),第11位表示的点表示分隔符,点后面的数字表示文件有几个硬连接,第一个root代表属主名,第二个root代表这个第一个root所在的组织,接下来的5表示文件大小,5后面的日期表示文件最后一次修改的时间 , 1.txt代表的文件或文件夹的名称
小结:
切换文件目录
cd 文件路径
cd:切换到家目录
cd ~:回到家目录(也就是家目录)
cd ..:回到上一级目录
创建目录
mkdir 目录名
mkdir -p 目录名,级联创建目录
cp 被拷贝的文件(可以是路径加文件名) 拷贝到哪个位置
复制目录使用
cp -r 被拷贝的目录 目标位置
移动命令
mv 被移动的文件 目标位置 目标文件名
rm 文件名(此中方式的删除需要再输入 yes)
rm -f 文件名,无提示直接删除
rm -rf 文件夹
ln命令默认创建的是硬连接
ln profile a:将a硬连接到profile文件上,他们底层共用一个文件,删除他们之中任何一个
对另外一个没有影响,同时你也可以使用 ll -i命令查看文件编号
ln -s profile a:将a软连接到profile文件,当你访问a的时候会去访问profile,profile再访问底层文件,当将profile删除了之后a就无法访问了
一致时间、创建新文本
touch 已存在的文件:会将文件的访问时间、更新时间、改变时间(即上面stat中介绍的三个时间)变成一致
touch 不存在的文件:会创建一个新的文本
cat命令查看文件内容
cat 1.txt:查看单个文件内容
cat 1.txt 2.txt:查看多个文件
more 1.txt:以分页的形式查看文件内容,按空格:下一页,回车:下一行(注意它不能回看 , 回看的话只能用鼠标回轮)
less 1.txt:使用空格下一页 , b看上一页,回车看下一行
注意less的话会把整个文件内容加载到内存 , 如果文件比较大的话,建议使用more命令查看
head命令默认查看文件前10行内容,head 1.txt
head -5 1.txt:查看文件前5行的内容
tail命令默认查看文件后10行的内容 tail 1.txt
tail -5 1.txt:查看文件后5行内容
tail -f 1.txt:实时查看文件增量内容
cat b.txt | head -3:管道左边的命令会以输出流的形式交给管道右边的命令 , 管道右边以输入流的形式接收并且拼到命令的右边
注意:ls -l 不能接受前面的输出流 , 这个怎么办呢?可以通过xargs命令
vi文本编辑器末行模式的操作
set nu(number的缩写): 设置行号
set nonu(nonumber的缩写):取消行号
set readonly:设置为只读
n:往下查找
N:往上查找
n:往上查找
N:往下查找
一般我们会在/etc/profile文件中设置一些环境变量 , 但是在设置的时候可能没有记住目录,这时候我们可以使用如下方式
效果
格式 :s/str1/str2/gi
/ : 临近s命令的第一个字符边界字符,也可以是 @或#
g : 一行内全部替换
i : 忽略大小写
范围
n:行号
. :当前光标行
n :偏移n行
-3
%:全文
全部删除 1,$d
删除前三行
删除倒数第2行
光标挪到最后一行 按下小写的p
效果图
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特殊字符、及这些特定字符的组合组成一个"规则字符串" , 这个"规则字符串"用来表达对字符串的一种过滤逻辑 。
\ :转义字符
. :匹配任意单个字符
[1249a] :匹配中括号中任意字符
[^12] :匹配中括号中任意非1和2的字符
[a-k] :匹配中括号中任意a~k中的一个字符
^ :行首
$ :行尾
abc :单词首尾边界(匹配单词abc)
| :连接操作符
(,) : 选择操作符
\n :反向引用
? :匹配0到1次
在Linux中通过grep命令使用正则表达式来匹配信息
f :选择显示的列
s :不显示没有分隔符的行
d :自定义分隔符
n :按数值排序
r :倒序
t :自定义分隔符
K :选择排序列
u :合并相同行
f :忽略大小写
【Linux命令合并重复行 linux合并同名文件夹】 sed:行编辑器,以行为单位进行处理,可以将数据进行替换、删除、新增、选取等特定工作
sed [options] 'Command' file ...
-n :静默模式 , 不再默认显示模式空间(内存)中的内容
-i :直接修改原文件
-e SCRIPT :可以同时执行多个脚本
-f /PATH/TO/SED_SCRIPT
-r :表示使用扩展正则表达式
d :删除符合条件的行
p :显示符号条件的行
a \string :在指定的行后面追加新行 , 内容为string
\n :可以用于换行
i \string :在指定的行前面添加新行 , 内容为string
c :取代,c的后面可以接字符串
s /pattern/string/修饰符:查找并替换 。默认只替换每行中第一次被模式匹配到的字符串
g :行内全局替换
i :忽略字符大小写
s///:s###,s@@@
(),\1,\2
sed "2p" ctxt
但是在执行下面的操作的时候文本中的内容都显示出来了,它的原理是 , 打印匹配的行,以及文本中所有的内容
注意:它删的是内存中的数据,而不是目标文件
sed -i "3d" ctxt
它的原理是先把内存中的第3行数据删除,然后再把内存中的数据写回原文件 , 这时原文件中的第三行就没有了
使用变量的形式
awk是一个强大的文本分析工具 。
相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大 。
简单来说awk就是把文件逐行的读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理 。
awk -F '{patternaction}' {filenames}
支持自定义分隔符 , 默认是以空格分隔的
支持正则表达式匹配
支持自定义变量,数组 a[1] a[tom] map(key)
支持内置变量
ARGC命令行参数个数
ARGV命令行参数排列
ENVIRON支持队列中系统环境变量的使用
FILENAMEawk浏览的文件名
FNR浏览文件的记录数
FS设置输入域分隔符,等价于命令行 -F选项
NF浏览记录的域的个数
NR已读的记录数
OFS输出域分隔符
ORS输出记录分隔符
RS控制记录分隔符
支持函数
print、split、substr、sub、gsub
支持流程控制语句
if、while、do/while、for、break、continue
练习题
passwd文件内容解读:
passwd文件中每行由7个字段组成,字段与字段之间由:分隔,第一个字段代表用户名,第二个字段表示用户对应的加密后的密码 , 第三个字段表示userId,第四个字段表示groupId,第五个字段表示对用户的描述,第六个字段表示用户的家目录,第七个字段表示的是这个用户默认使用的shell
其中$0表示整行
统计报表:合计每人1月工资,0:manager,1:worker
将awk后面的内容封装到一个文件中(封装的脚本要遵循一定的格式)
qqq文件的内容格式
在Linux中怎么样将两个文件相同行的数据合并成一个文件Linux下使用cat命令读入两个文件,然后将重定向到一个新的文件 。
用法案例:
将file1.txt和file2.txt合并到file.txt
$ cat file1.txt file2.txtfile.txt也可以只使用cat命令读入一个文件,然后使用将文本流追加到另一个文件的末位 。
用法示例:
将file1.txt追加到file2.txt的末尾
$ cat file1.txtfile2.txt
Linux基本操作-----文件的排序 分割 合并 归档等linux基本操作-----文件的排序 分割 合并 归档等1
sort
1
sort命令将输入文件看做由多条记录组成的数据流,而记录由可变宽度的字段组成,以换行符作为定界符
2
sort的命令的基本格式
sort
选项
文件
3
sort命令选项及其意义
选项
意义
-c
测试文件是否已经被排序
-k
指定排序的域
-m
合并两个已排序的文件
-n
根据数字大小进行排序
-o
输出文件
将输出写到指定的文件,相当于将输出重定向到指定的文件
-r
将排序结果逆向显示
-t
改变域分割符
-u
去除结果中的重复行2
uniq
1
uniq命令是用于去除文本的重复行,这类似于sort命令的-u选项
2
uniq命令的基本用法
uniq
选项
文件
3
uniq命令选项及其意义
选项
意义
-c
打印每行在文本中重复出现的次数
-d
只显示有重复的记录,每个重复记录只出现一次
-u
只显示没有重复的记录3
cut
1
cut命令用于从标准输入或文本文件中按域或行提取文本
2
cut命令的基本格式
cut
选项
文件
3
cut选项及其意义
选项
意义
-c
指定提取的字符数或字符范围
-f
指定提取的域或域的范围
-d
改变域分割符4
tar
1
tar命令是linux的归档命令,通俗的说tar命令实现了linux系统文件的压缩和解压缩
2
tar命令基本格式
tar
选项
文件名或目录名
3
tar命令选项及其意义
选项
意义
-c
创建新的包
-r
为包添加新的文件
-t
列出包内容
-u
更新包中的文件,若包中没有此文件 , 则将文件添加进包中
-x
解压缩文件
-v
详细报告tar处理的信息
-f
使用压缩文件或设备,该选项通常是必选的
-z
用gzip压缩和解压缩文件,如果是.gz结尾的tar包那么该选项是必须的
4
解压非gzip格式的压缩包
tar
-xvf
包名
解压gzip格式的压缩包
tar
-zxvf
包名
如何用linux命令合并文件Linux中使用cat命令利用Linux重定向合并文件,如将file1,file2合并为file3命令如下:
$ cat file1 file2file当然 , 如果只是将file1的内容追加到file2中,可以使用命令如下:
$ cat file1file2cat命令说明:
1.
命令格式:cat [选项] [文件]...
2.
命令功能:cat主要有三大功能:(1)一次显示整个文件:cat filename;(2)从键盘创建一个文件:catfilename 只能创建新文件,不能编辑已有文件;(3)将几个文件合并为一个文件:cat file1 file2file 。
3.
常用参数:
-n

--number

1
开始对所有输出的行数编号
-b

--number-nonblank

-n
相似,只不过对于空白行不编号
-s

--squeeze-blank
当遇到有连续两行以上的空白行,就代换为一行的空白行
-v

--show-nonprinting
Linux命令合并重复行的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux合并同名文件夹、Linux命令合并重复行的信息别忘了在本站进行查找喔 。

    推荐阅读