vim 中可通过dos2UNIX与UNIX2dos来完成DOS断行字符与UNIX断行字符的转换。
1. tr
用来删除一段信息中的文字,或者进行文字替换。
# 将文件中的‘#’ 删除
cat aa.txt | tr -d '#'
# 在文件aa.txt 中将set1中的所有字符全部删除
cat aa.txt | tr -d set1
# 将小写字母转换成大写
cat aa.txt | tr '[a-z]' '[A-Z]'
# 去除dos文件保留下来的断行符 ^M,(将行尾的^M --> \r)
cat aa.txt | tr -s '^M' '\r'
2. col
将tab 键转换成对等的空格
-h, --tabs convert spaces to tabs
-x, --spaces convert tabs to spaces
cat aa.txt | col -x >aa.txt.new
3. expand
将tab键转成空格键 (unexpand 将空格键转成tab键 )
-t 后面接数字,指定一个tab键换成多少个空格,默认8个
expand aa.txt >aa.txt.new
4. join
将两个文件当中有相同数据的那一行加在一起。
常用参数:
-t : 以“第一个字段”为键,将两个文件键相同的数据连成一行,且键放在第一个位置,默认以空格作为分隔符。
-i : 忽略大小写
-1 : 表示第1个文件要以哪个字段作键
-2 : 表示第2个文件要以哪个字段作键
以aa.txt的第二个字段为键,以bb.txt的第三个字段为键,将两个文件进行拼接:
join -1 2 aa.txt -2 3 bb.txt
注意: 在使用join 前,对待处理的文件要先进行排序sort,否则有些对比的项目会被略过。
5. paste
直接将两个文件中的行拼在一起,且默认以tab键隔开。
-d 指定分隔符
paste -d ':' aa.txt bb.txt