大数据之Linux进阶指令

1.文件内容操作相关命令

  cut 根据条件 从命令结果中 提取 对应内容

    -c   按字符选取内容

  例子:head -2 1.txt | cut -c 5 截取前两行的第五个字符

    -d  '分隔符'     指定分隔符

    -f  n1,n2       分割以后显示第几段内容, 使用(,)拼接

     也可以写成 -f  1,2  或者 -f 1-2

  例子:head -2 1.txt | cut -d ':' -f 1,2 读取前两行内容后按照:切割 显示第一段和第二段内容

  sort 可针对文本文件的内容,以行为单位来排序。 

    文件名    对文件内容按照字符排序

    -u      对文件内容按照字符排序并去重

    -n      按照数值大小排序

    -r     使次序颠倒

    -t       指定字段分隔符

    -k      配合切割字符使用,切割后显示第几列,并根据那一列排序

  例子:sort -t ',' -k2nr score.txt  根据第二段成绩 进行倒序显示 所有内容

  wc显示指定文件 字节数, 单词数, 行数 信息.

    文件名   显示指定文件 字节数, 单词数, 行数 信息.多个文件用空格拼接

    -c     只显示bytes 字节数

    -w       只显示words 单词数

    -l      只显示lines 行数

  uniq用于检查及删除文本文件中重复出现的行,一般与 sort 命令结合使用。

    -c     统计每行内容出现的次数

  例子:cat 5.txt | sort | uniq -c 显示去重后的数据并且在行头显示出现的个数

  tee可以将命令结果 通过管道 输出到 多个文件中

  例子:cat 5.txt | sort | uniq -c | tee a.txt b.txt c.txt   将去重统计的结果 放到 a.txt、b.txt、c.txx 文件中

  tr用于 替换 或 删除 文件中的字符。

  例子:echo "itheima" | tr 'i'  'I'     将 小写i 替换成 大写 I 

    -d 字符  删除指定的内容

  例子:echo 'abc1d4e5f' | tr -d '[0-9]'  删除abc1d4e5f中的数字

  split将大文件 切分成 若干小文件

    -b  [bytes]    将大文件切分成若干bytes的小文件   (如10K)支持K M G 的简写

     -l  [lines]    将大文件切分成若干行的小文件 

  awk实现 模糊查询, 按需提取字段, 还可以进行 判断 和 简单的运算等.

    -F      分割符后面跟要根据什么字符分割

    $ + 数字   获取第几段内容

    $0       获取 当前行 内容

    NF      表示当前行共有多少个字段

    $NF      代表 最后一个字段

    $(NF-1)      代表 倒数第二个字段

    NR        代表 处理的是第几行

    OFS="字符"  向外输出时的 段分割字符串

    '{print $1, $2, $3}'    打印第一段,第二段,第三段,配合分割使用

    toupper()       字符 转成 大写

    tolower()       字符 转成小写

    length()         返回 字符长度

    'BEGIN{初始化操作}{每行都执行} END{结束时操作}'

   例子:awk -F ',' '{if($4>60) print $1, $4, "及格"; else print $1, $4, "不及格"}' score.txt     如果第四段成绩大于60;打印第一段姓名,第四段成绩,及格 否则 打印  打印第一段姓名,第四段成绩,不及格

   例子:awk -F ',' 'BEGIN{}{total=total+$4}END{print total, NR, (total/NR)}' score.txt       求平均分,Begin{}{求所有人的成绩的和}END{打印总成绩,总人数,平均分}

   sed通过 sed 可以实现 过滤 和 替换 的功能

    p       打印

    $       代表 最后一行

    -n        仅显示处理后的结果

    -e        根据表达式 进行处理
   例子sed -n -e '1,5p' 1.txt   列出 1.txt的 1~5行 的数据
   例子:sed -n -e '/root/p' 1.txt  查找01.txt中包含root行
2:文件解压压缩相关命令
  # 压缩文件 
  tar -zcvf 打包压缩文件名.tar.gz 被压缩的文件/目录 

# 解压缩文件(记忆敲门: 直销危房)
tar -zxvf 打包文件.tar.gz

# 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目录路径

-z 解压/压缩.gz文件  -j 解压/压缩 bzip2文件

3.VIM编辑器相关命令  

如果 vi 异常退出, 在磁盘上可能会保存有 交换文件.swp文件,再次打开文件时会有提示,如果放弃之前的编辑按D,恢复按R,不管按E

vim 文件名 创建/打开文件 没有即创建 有即打开 w   保存
vim 文件名 +行数  打开文件并将光标留在指定行 q 退出,如果没有保存,不允许退出
h 光标向左 q! 强行退出,不保存退出
光标向下 wq  write & quit 保存且退出
光标向上 x 保存并退出
光标向右 ZZ  保存并退出
w 向后移动一个单词 0 行首
b 向前移动一个单词 ^ 行首, 第一个不是空白字符的位置
gg 
文件顶部
$ 行尾
数字G 
移动到 数字 对应行数 
Ctrl + b 
向上翻页 
: 数字
移动到数字对应的 行数
Ctrl + f 
向下翻页 
上一段
H
屏幕顶部
下一段
屏幕中间 
%
括号匹配及切换 
屏幕底部
mx
添加编辑x, x是a~z 或者 A~Z的任意一个字母
'x 
直接定位到标记x所在的位置
撤销上次的命令(ctrl + z) 
Ctrl + r
恢复撤销的命令
x
删除光标所在的字符,或者选中的文字 d(移动命令) 删除移动命令对应的内容/剪切
dd 
删除至行尾/剪切
d0 
从光标位置删除到一行的起始位置
dw 
从光标位置删除到单词末尾
d} 
从光标位置删除到段落末尾
ndd 
从光标位置向下连续删除 n 行
d'a
从光标所在行 删除到 标记a 之间的所有代码
y 复制 yy 复制一行,可以nyy复制多行
p 粘贴
重复上次命令
r 替换当前字符 命令模式 R 替换当前行光标后的字符 替换模式
>> 
向右增加缩进
<< 
向左减少缩进
/str 
查找str 
向后查找当前光标所在单词 
#
向前查找当前光标所在单词 
:%s/旧文本/新文本/g
替换文件中的 所有出现的旧文本 
i
在当前字符前插入文本
I
在行首插入文本
a 在当前字符后添加文本 A 在行末添加文本
o 在当前行后面插入一空行 O 在当前行前面插入一空行

 

       

       

  

                   

                   

                    

            

             

           

             

             

            

            

              

              

             

             

               

原文地址:https://www.cnblogs.com/sky9408251/p/12036596.html