首页 > 代码库 > 7,文本处理、重定向、管道、bash算术运算、脚本 输入
7,文本处理、重定向、管道、bash算术运算、脚本 输入
文本处理类命令:
wc, tr, cut, sort, uniq, 一共 就这 几个, 都 挺简单 的, 不过 非常常用,
1、 wc : 这个 是 做 字符 统计 的 命令,
wc [选项] [文件]...
-l : 统计行数
-c : 统计字节数
-w : 统计单词数(这里 的 单词 指的是 以 空格 分隔 的 字符串)
2、 tr : 转换字符 或 删除 字符, 这个 命令 主要 用于 大小写 转换,字符串 替换 或 删除
-d : 表示 删除 字符 串
3、 cut : 剪切文本, 这里 的 文本 都是 单行 的, 也就是 cut 一次 只能 处理 一行 文本
-d字符: 指定分隔符
-f#: 指定要显示的字段
单个数字: 显示一个字段
多个数字,以 逗号 分隔: 显示多个字段
-: 连续字段, 如 3-5
4、 sort : 排序, 默认是以字符排序的,也就是ASCII码的值排序的,不过也可以指定数值排序。
sort [option] file...
-f:忽略字符大小写
-n:比较数值大小
-t:指定分隔符
-k:指定分隔后进行比较的字段
-u:重复的行,只显示一次
强调一下,sort默认是以行为单位处理文件的。。
5、 uniq
-c: 显示重复的行的次数
-d: 仅显示重复的行
-u: 显示不曾重复的行
ok, 这里 还是 说 两个 练习 把,
练习1: 统计/bin、/usr/bin、/sbin和/usr/sbin等各目录中的文件个数;
# ls /bin | wc -l
练习2: 2、显示当前系统上所有用户的shell,要求,每种shell只显示一次;
# cut -d: -f7 /etc/passwd | sort -u
重定向:
系统 默认 是把输出 的 信息 显示到 显示器上的,不过 有些 时候 我们 希望 把 显示 的 信息 直接 存储 成 一个 文件, 这个 时候 就 需要 重定向 了。。
输入 和 输出 其实 是 分为 三种 的, 这些 信息 默认 都是 显示 的 显示器 上 的。。
标准输入: stdin : 0
标准输出: stdout : 1
标准错误: stderr : 2
I/O 重定向:
输入重定向:
< : 命令 < 文件 : 这个 表示 命令 以 文件 的 形式 获取 stdin(以前是靠键盘输入的。。。)
<< : 命令 << 标记字符串: 这个 叫做 Hear document, 从 stdin 中 读入, 直到遇到 标记字符串 停止
输入重定向:
> : 命令 > 文件 : 将命令的 输出 保存至 文件(会清空文件的原有内容)
>> : 命令 >> 文件 : 将命令的输出 追加 到 文件, 这个 不会 清空 原有 文件 了。。
set -C : 禁止使用 > 命令, 因为 这个 命令 比较危险,
set +C : 允许使用 > 命令
>| : 当 > 命令 禁止 时 可以 用 这个, 这个 表示 强制 使用 的 意思。
/dev/null : 这个 是 一个 文件, 也叫做 位桶, 无论 向 里面 重定向 什么 都会清空
这里 把 id 命令 的 输出 结果 重定向 进 了 位桶(感觉就是垃圾桶。。), 之后 我们 看 一下 这个 命令 是否 执行 成功。 , 成功 了 就 说明 这个 用户 存在, 貌似 就是 这么 用 的。
错误重定向: 这个 和 输入 重定向 是 差不多 的,
2> : 覆盖
2>> : 追加
这里 说 一下 , 一个 命令 执行 成功 的 信息 和 执行 错误 的 信息 不是 一样 的, 所以 如果 使用 输出 重定向, 当 文件 执行 失败 时, 他 还是 会 显示 错误 信息 的。。
输出 和 错误 重定向: 这个 就是 输出重定向 和 错误重定向 的 合体 了。。
&> : 覆盖
&>> : 追加
管道:
这个以前 就 说过 了, | 表示 把 上一个 命令 的 执行 结果 当做 下一个 命令 的 输入, 也 是 一直 在 用 的说。。
tee : 将标准输入的内容输出到屏幕上,并且存储到文件中。相当于 一个 三项接口 把。。, 一个 输入 , 两个 输出。。
这个命令 貌似 也会 覆盖 文件 的。
bash中的算术运算:
declare : 定义变量 时 定义 变量 的 类型
-i : 整数
-x : 环境变量
let var_name=算术表达式 , 使用 let 命令 就可以 进行 算术 运算 了。。
var_name=$[算术表达式] , 算术运算 的 第二种 方法。。
((var_name=算术表达式)) , 算术表达式 的 第三种 方法。。, 坑! 就 没有 个 唯一 方法 么
var_name=`expr $num1 + $num2` , 这个 是 第四种。。, 服了, bash 一直 都是 乱七八糟 的
read 和 单步执行:
read : 输入,读入 的 意思。。
read I 表示 读入 I 变量, 需要 和 用户进行 交互, 等待 用户 输入
-t : 等待 用户 输入 信息 的 时间
-p "字符串" : 在 读入 时 显示 一个 字符串。
单步执行 : bash -x 脚本名
练习: 输入 两个 整数 A, B , 其中 A < B, 求 A 到 B 之间 所有 整数 之和。
现在 单步 执行 一下。。, 看 下 过程。
本文出自 “宁静淡泊” 博客,请务必保留此出处http://vrgfff.blog.51cto.com/6682480/1572815
7,文本处理、重定向、管道、bash算术运算、脚本 输入