这是文章正文
来自 hexo
我有标题了,哈哈!
cut 命令
一、概述
cut 命令用于剪切文件的特定部分并将其打印到标准输出,而不更改实际文件。换句话说,它是文本提取工具之一,另外常见的文本提取工具还包括 awk 、sed 、grep 等。
cut 命令常用选项
| 选项 | 描述 |
|---|---|
| -c / –characters | 剪切特定字符或字符 范围 |
| -b / –bytes | 剪切特定字节或字节范围 |
| -f / –fields | 指定要提取的字段(例如,-f 2对于第二个字段) |
| -d / –delimiter | 设置字段分隔符(默认为制表符) |
| –complement | 剪切除指定字节、字符或字段之外的所有内容 |
二、按字符剪切/提取
1 | echo cut-command > cut.txt |
三、按字节剪切/提取
按字节提取与按字符提取类似,当文本为 ASCII 文本文件时,单个字符的大小为 1 个字节,因此可以将上述示例中的 -c 选项替换为 -b 选项,它们的结果是一致的,如下所示:
1 | $ file cut.txt |
如果文本文件使用多字节编码,如 UTF-8 Unicode,那情况就有所不同,如下所示:
1 | $ cat cut1.txt |
四、按字段/列提取
1 | $ echo "1 2 3" > cut.txt |
4.2 cut 如何处理多个空格分隔的字段/列
如果是一个空格,则按常规处理,敲一个空格键(需用双引号或单引号括起来),如下所示:
1 | $ cat cut3.txt |
如果是三个空格分隔呢?是不是就可以写成
1 | $ cat cut2.txt |
答案是不行,它会提示你”分隔符必须是单个字符”,所以解决问题的关键是将多个空格转换为单个空格分隔,而 tr 命令则可以将多个相同长度的空格压缩为单个空格,如下所示:
1 | $ tr -s " " < cut2.txt | cut -d " " -f 2,3 |
总结:
- 无论是按字符、字节还是字段都可以剪切/提取某一处或多处(用逗号分隔)以及某一范围的内容
- 如果是按字段提取多列内容,被提取出的内容,列与列之间也是用 -d 指定的分隔符分隔,除非使用 –output-delimiter 选项额外指定
1 | $ ll -d work |
拖拽更新
手工拖拽方式有个非常大的缺点,那就是每次更新博客都需要重新生成 public,然后重新拖拽上传整个文件夹,比较麻烦。
my second post
我修改了第二篇文章标准