go-die-ing
郁闷的时刻
今天发现世界上有种死法叫做被自己傻死,正在dieing。知道的东西太少了也是一种罪过!啊!!!!
之前为了将一个文件并行的写入另一个文件想了好多方法,最终呢是一个同事写了很长的脚本,用了许多高级的awk语法才搞定,但是今天呢,看见了一个命令,就是这个命令啊,差点没把我气死。一个命令搞定全部工作
1 | --- ~/Desktop » cat 1.py |
原来一切如此简单!linux上的工具还真是好用啊。下面说说几个参数
1 | -d, --delimiters=LIST reuse characters from LIST instead of TABs |
-d
指定delimiter,默认为tab使用
\n
实现交叉合并1
2
3
4
5
6
7
8
9
10
11--- ~/Desktop » paste 1.py 2.py -d'\n'
1
6
2
7
3
8
4
9
5
10指定其它delimiter,不过这个delimiter只能有一个可惜
1
2
3
4
5
6--- ~/Desktop » paste 1.py 2.py -d '-'
1-6
2-7
3-8
4-9
5-10如果要用长一些的delimiter那么使用awk
1
2
3
4
5
6--- ~/Desktop » paste *py | awk '{print $1"---->"$2"<----"$3}'
6<----11
7<----12
8<----13
9<----14
10<----15
-s
将列转为行,比使用xargs -n
好多了,因为xargs毕竟需要指定列数,具有不可靠性,而这个才是专业的1
2
3
4
5--- ~/Desktop » paste 1.py 2.py -s
1 2 3 4 5
6 7 8 9 10
--- ~/Desktop » paste 1.py -s
1 2 3 4 5-z
这个参数的作用我暂时还没体会到,恕我愚蠢1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16--- ~/Desktop » paste 1.py 2.py 3.py -z
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15结合使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16--- ~/Desktop » paste 1.py 2.py 3.py -d '\n' -s
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15效果类似于
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16--- ~/Desktop » cat 1.py 2.py 3.py| xargs -n 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
151
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16--- ~/Desktop » cat *.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15