cut、tee、split、xargs、bc命令

2023-10-30

http://sss721.blog.163.com/blog/static/10170119200992811123802/

一、cut命令

cut 主要的用途在于将一行里面的数据进行分解,最常使用在分析一些数据或文字数据的时候!这是因为有时候我们会以某些字符当作分割的参数,然后来将数据加以切割,以取得我们所需要的数据。

? 命令格式:

  cut -d "分隔字符" [-cf] fields

  -d :后面接的是用来分隔的字符,默认是空格符

  -c :后面接的是第几个字符

  -f :后面接的是第几个区块(列)?

  cat /etc/passwd | cut -d ":" -f 1

  last | cut -d “ ” -f1 //以空格符为分隔,并列出第一列

  last | cut -c1-20 //将 last 之后的数据,每一行的 1-20 个

  字符取出来

二、tee命令

   将数据输出重定向到文件的时候,屏幕上就不会出现任何的数据!那么如果我们需要将数据同时显示在屏幕上跟档案中呢?这个时候就需要 tee 这个指令。

    last | tee last.list | cut -d " " -f1

三、split命令

    将大的文件分割成小的文件

    -b size 来将一个分割的文件限制其大小

    -l line以行数来分割

    split -l 5 /etc/passwd test <==会产生testaa, testab, testac... 等等的小文件

dd if=/dev/zero bs=1000k count=10 of =1.date

split -b 1000000 1.dat abc

四、xargs

    xargs从标准输入中接受单词列表的命令,并把 这些单词作为参数传递给指定的命令

    ls |xargs rm//把ls列出的内容再通过rm删除可以每次删除一部分文件

    ls |xargs –n 2 rm

    ls | xargs –n 2 echo “==>”

    有时目录里文件太多了不能使用rm *删除这时

    ls | grep ‘^abc’ |xargs –n 20 rm

   

    ls abcd*|xargs -i cp {} /tmp

五、bc命令

    bc命令:进行算术运算,但不限于整数运算

    $bs

    scale=4 //表示计算结果保留4位小数

  2+3

  2-3

  2*3

  8/3

  quit

    bc还可以用在shell变量赋值中

  ABC=`echo “scale=4;8/3” | bc`

  echo $ABC

====================================

shell字符串操作:

前景色:30 黑色 31红色  32绿色  33黄色  34蓝色  35紫红  36青色  37白色

背景色:40          41         42         43         44         45         46         47

echo -e "\033[32;40m"ok "\033[0m"

#!/bin/bash

a="**********************************************"

for i in {30..37}

do

        for n in {40..47}

        do

        echo -e "\033[$i;${n}m"$a"\033[0m"

done

done

----------------------------------

[root@localhost ~]# path=$PATH

[root@localhost ~]# echo $path

/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

[root@localhost ~]# echo ${path#/*kerberos} <---1个#是最小匹配从前向后删除

/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

[root@localhost ~]# echo ${path##/*kerberos} <---2个#是最大匹配从前向后删除

/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

[root@localhost ~]# echo ${MAIL%r*}<------%是从后向前删除

/var/spool/mail/

[root@localhost ~]# echo ${MAIL%%r*}<----%%是最大匹配

/va

[root@localhost ~]# echo ${#MAIL}<----统计变量字符长度

20

统计字符小于30的行就添加一个空行

#!/bin/bash

while read line

do

        a=${#line}

        echo $line

        if [ $a -lt 30 ];then

                echo

        fi

done < $1

~          

 echo ${path/bin/BIN}<-----把第1个bin替换成BIN

/usr/kerberos/sBIN:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

echo ${path//bin/BIN}<-----加2个//表示全部替换

/usr/kerberos/sBIN:/usr/kerberos/BIN:/usr/local/sBIN:/usr/local/BIN:/sBIN:/BIN:/usr/sBIN:/usr/BIN:/usr/X11R6/BIN:/root/BIN

echo ${abc//[0-9]/}

判断输入的是数字还是字符串

    #!/bin/bash

    read -p "please input:" a

    b=${a//[0-9]/}

    if [ -z $b ];then

        echo "your input is number!"

    fi

var=${str:-newvar} 当str是空的时候 var=newvar ,str不为空的时候var=$str

var=${str:=newvar} 当str是空的时候 var=newvar str=newvar ,str不为空的时候var=$str

创建文件如果不输入文件名则默认创建abc这个文件。

#!/bin/bash

read -p " please create file [abc] :" f

 a=${f:-abc}

cd /tmp

touch $a

-------

#!/bin/bash

read -p " please create file [abc] :" f

 a=${f:-abc}

 b=`date --date="1 days ago" +%F`

 c=`date --date="2 days ago" +%F`

 d=`date +%F`

cd /tmp

touch $a.{$b,$c,$d}

备份/root目录下的 sh文件到/tmp/backup用时间创建文件夹 再次备份时比较文件更新时间,比上一次新的才备份

#!/bin/bash

a=/tmp/backup/`date +%F.%H:%M`

cd /root

if [ ! -e $a ];then

        mkdir -p $a

fi

for i in `find *.sh`

 do

         find /tmp/backup -newer $i | grep -q $i

        if [ $? -ne 0 ];then

        cp $i $a/$i

        fi

done

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cut、tee、split、xargs、bc命令 的相关文章

  • 有哪些基于对象的 shell?

    我打算写一个面向对象的shell 基于Python 我已经有很多想法了 但在实现它之前 我想通过一些现有的 shell 来激发我的灵感 我所说的面向对象的基本意思是 参数不仅仅是字符串数组 而且是对象数组 返回值也是一个对象 不仅有 std
  • Linux shell 从用户输入中获取设备 ID

    我正在为一个程序编写安装脚本 该程序需要在其配置中使用 lsusb 的设备 ID 因此我正在考虑执行以下操作 usblist lsusb put the list into a array for each line use the arr
  • unix 下日期字段排序

    我有包含数十万条记录的文本文件 其中一个字段是日期字段 有没有办法根据日期字段对文件进行排序 09 APR 12 04 08 43 632279000 AM 19 MAR 12 03 53 38 189606000 PM 19 MAR 12
  • 为什么 fork 炸弹没有使 android 崩溃?

    这是最简单的叉子炸弹 我在许多 Linux 发行版上执行了它 但它们都崩溃了 但是当我在 android 终端中执行此操作时 即使授予后也没有效果超级用户权限 有什么解释为什么它没有使 Android 系统崩溃吗 一句话 ulimit Li
  • 如何使用 docker ENTRYPOINT 与 shell 脚本文件组合参数

    我编写 shell 脚本文件并将其与 docker ENTRYPOINT 一起使用 但是当我运行 docker image 时 由于入口点代码行 它只是停止而没有任何错误日志 我的 Dockerfile FROM ubuntu 16 04
  • 如何根据标签将单个 XML 文件拆分为多个

    我有一个带有标签的 XML 文件 我想像这样分割文件
  • 使用 shell 脚本将行附加到 /etc/hosts 文件

    我有一个新的 Ubuntu 12 04 VPS 我正在尝试编写一个安装脚本来完成整个 LAMP 安装 我遇到问题的地方是在 etc hosts文件 我当前的主机文件如下所示 127 0 0 1 localhost Venus The fol
  • 如何扩展路径中的波形符(~)[重复]

    这个问题在这里已经有答案了 我有一个 shell 脚本 可以从用户那里获取目录路径 但我需要检查目录是否为空 如果用户将他的主路径与 而不是绝对路径 所以我无法检查它ls echo Specify your project root dir
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • 使用.sh脚本设置环境变量

    如何编写 sh 脚本以在 Ubuntu 14 上全局设置环境变量 i e bin sh sets this in to master etc environment export DB HOST 123 我知道我可以运行这个脚本 它只会将其
  • 如何在shell脚本中给出密码?

    在 shell 脚本文件中 我使用一些命令 例如scp and make install要求我输入密码 我运行一个 shell 脚本来编译一个大项目 一段时间后它会要求我输入密码才能使用scp 我需要等待该过程并在此之后提供密码 我只想通过
  • Bash:执行命令时超时/文件溢出终止

    我正在用 bash 编写一个模拟评分脚本 它应该执行一个 C 程序 该程序将给出一些输出 我将其重定向到一个文件 我试图 1 使其在一定持续时间后超时 并且 2 如果输出文件到达某个文件则终止尺寸限制 不知道如何解决这两个问题 有什么帮助吗
  • Linux Bash - 日期格式

    我的日期格式是 yyyy mm dd hh mm ss 如何检查我的输入 它应该是这样的 bin bash read p Date format yy mm dd HH MM SS input check date Y m d H M S
  • npx:shell-auto-fallback 参数已被删除

    老实说 我不记得我最后在我的机器上安装了什么 我相信它正在酝酿 gatsby cli 无论如何 从昨天早上开始 当我打开新实例或重置终端 打开新选项卡 源 zshrc 等 时 我的终端一直给出以下错误 Last login Tue Nov
  • Emacs shell:保存提交消息

    我几天前开始使用 emacs 在 emacs shell M x shell 中使用 git 时遇到问题 当我 git commit 或 git commit amend 时 它会打开 vim 来编辑并保存提交消息 我对此表示同意 但我找不
  • c - 后台运行的程序的退出状态

    我有一个任务 其中我必须创建一个迷你 shell 它能够执行很多操作 包括作业控制 我设法使用 fork 和 execvp 创建新的工作 但我还想获取 execvp 运行的程序的退出代码 根据我从其他帖子中查找到的内容 我可以使用以下方法来
  • 寻找 shell 重定向交错行为的解释

    给定以下脚本 t sh bin bash if eq 0 then log if gt 0 then printf s n else cat fi tee a logged out else log if gt 0 then printf
  • VBA:如何从 MS Access 运行另一个应用程序

    我一直在试图解决这个问题 但似乎我在任何地方都找不到解决该问题的方法 这是第一部分 VBA Shell 命令始终返回 找不到文件 https stackoverflow com questions 10439024 vba shell co
  • Shell脚本通过curl调用API并处理响应

    我需要创建一个通过curl 调用我的登录API 的shell 脚本 该脚本应该能够存储和处理来自curl api 调用的响应 myscript sh bin bash echo Extract bearer token from curl
  • 过滤 stderr 并获取初始返回代码

    在 shell 脚本中 我必须运行一个命令 我需要确定返回码是什么 但事实证明该命令的输出会发送到 stderr 并且还会输出用户的密码 不幸的是 这是命令的一个参数 不好 我知道 我至少想过滤掉密码 使其不被显示回来 cmd OPTION

随机推荐

  • 多标记学习(大大杂烩,有点乱)

    多标记学习算法 算法分类 按相关性划分 一阶 first order 策略 该类策略通过逐一考察单个标记而忽略标记之间的相关性 如将多标记学习问题分解为 个独立的二类分类问题 从而构造多标记学习系统 该类方法效率较高且实现简单 但由于其完全
  • Unity导入FBX动画文件

    给刚入门的同学稍微记一下fbx格式动画导入unity的步骤 首先直接把fbx文件拖入unity内 如图操作 将avatar骨骼创建之后 我们接下来就根据自己对动画的一些需求设置一下动画的参数 比如截取一下动画的开始帧和结束帧来达到剪切的目的
  • 使用vue实现幻灯片

    1 在父组件中
  • JS事件循环机制(event loop)之宏任务/微任务

    原文地址 Tasks microtasks queues and schedules 视频讲解地址 https www bilibili com video av83625811 from search seid 6644038259868
  • 测试磁盘寻道时间

    分析性能时 文件系统读取速度不定 主要因为时间不仅花在读取上 还花在磁盘旋转和寻道上 写了一段代码测试这个的时间 一般普通硬盘是10ms左右 有两个函数 第一个函数是生成50G数据 第二个函数是测试 package WebGis Tile
  • OPTICS 点云聚类算法 (附python代码)

    OPTICS Ordering Points To Identify the Clustering Structure 和DBSCAN Density Based Spatial Clustering of Applications wit
  • QObject::connect: Cannot queue arguments of type ‘XXX‘

    1 开发环境 Win10 64bit Qt5 4 2 64bit 2 错误描述 在不同线程之间通过信号 槽来传递自定义数据类型QList
  • jmeter基本教程

    目录 1 简述 2 下载安装 3 基础设置 Jmeter的语言切换 修改Jmeter默认编码为utf 8解决控制台乱码 4 编写项目测试脚本 4 1 添加线程组 4 2 添加测试接口 4 3 添加察看结果树 4 4 添加用户自定义变量 4
  • QTHelprModule.dll 是什么

    QTHelperModule dll 是一个 Windows 平台上的动态链接库 DLL 文件 它通常是某些软件的一部分 用于执行特定的功能和服务 该文件可能包含代码 资源和数据 可以被其他应用程序调用 以实现不同的功能 如果您的系统出现了
  • 物联网:用python调入机器学习分析物联网数据入侵检测模块

    要使用Python调用机器学习分析物联网数据入侵检测模块 您需要以下步骤 安装Python和相关的机器学习库 如scikit learn pandas numpy等 您可以使用pip命令来安装这些库 准备输入数据 这些数据可以是来自物联网设
  • CentOS7 使用minikube 搭建kubernetes 学习环境

    Windows 10 系统 VirtualBox 6 0 x CentOS7启动在虚拟机上 先要安装docker 官网 https docs docker com engine install 有guide 一步步下来很简单 不多说了 按照
  • Python 之 格式化输出

    欢迎大家扫码关注我的微信公众号 Python 格式化输出 目录 一 为何需要进行格式化输出 二 格式化输出的几种方式 2 1 使用 进行格式化 2 1 1 字符串的格式化 2 1 2 浮点数的格式化 2 2 使用 format 进行格式化
  • DFRobot新推出一款适合短时间环境数据记录的Gravity 串口数据记录器

    著名开源硬件商DFRobot新推出一款Gravity 串口数据记录器 适用于做科学记录或短时间环境数据记录 Gravity 串口数据记录器产品特性 1 Gravity 串口数据记录器相比 MicroSD卡 读卡器模块存储数据 可以更方便的存
  • Gradle编译失败问题汇总

    Gradle编译失败问题汇总 问题1 Could not resolve org springframework boot spring boot gradle plugin 3 0 0 A problem occurred configu
  • canonical raft源码编译

    canonical raft源码编译 一 下载源码 二 安装环境 三 编译 四 问题报错 五 总结 一 下载源码 https codeload github com canonical raft tar gz refs tags v0 11
  • 自建代码托管平台 Gitlab 的使用说明(二)常用命令

    一 运维管理排查 查看版本 cat opt gitlab embedded service gitlab rails VERSION 检查gitlab gitlab rake gitlab check SANITIZE true trace
  • opencv 学习代码整理

    1 load image import cv2 import numpy as npfrom matplotlib import pyplot as plt img cv2 imread watch jpg cv2 IMREAD GRAYS
  • three.js实现vr全景图(vue)

    方法 可以利用Threejs中的立方体或者球体实现全景图功能 把立方体或球体当成天空盒子 将无缝衔接的图片贴上 看起来就像在一个场景中 相机一般放置在中央 three js中文网 1 立方体实现 立方体6个面要贴上6个方向的图片 这6个图片
  • 【前端八股文】vue系列:vue的优点和特点、生命周期、ref、$nextTick

    文章目录 vue的优点和特点 双向数据绑定 虚拟DOM 组件化 生命周期 十个阶段 相关功能 题外话 数据请求在created和mouted的区别 ref nextTick 参考 本系列目录 前端八股文 目录总结 是以 代码随想录 八股文为
  • cut、tee、split、xargs、bc命令

    http sss721 blog 163 com blog static 10170119200992811123802 一 cut命令 cut 主要的用途在于将一行里面的数据进行分解 最常使用在分析一些数据或文字数据的时候 这是因为有时候