文件test如下
1111111
2222222
3333333#
4444444
5555555
执行命令 awk 'BEGIN{RS="#";ORS="\n";FS=" "}{print $1}' test.txt
1111111
5555555执行命令awk 'BEGIN{RS="#";ORS="\n";FS="\n"}{print $1}' test.txt
1111111
空行
1111111
2222222
3333333#
4444444
5555555
执行命令 awk 'BEGIN{RS="#";ORS="\n";FS=" "}{print $1}' test.txt
1111111
5555555执行命令awk 'BEGIN{RS="#";ORS="\n";FS="\n"}{print $1}' test.txt
1111111
空行
解决方案 »
- 502 Connection reset by peer错误
- 有没有会LUNIX端口映射,拦截数据的大牛
- 请问这该如何解决
- 求大神指导,一个简单的netfilter程序编译问题
- 静态库无法链接成功
- 为什么同一个可执行文件在两个版本上一个使用了liblog.so和libcutils.so,另一个两个库都没有
- 迅为的iTOP-4418开发板怎么样,准备入手一块
- bash脚本函数,如何正确返回元素中带有空格的数组?
- Ubuntu16.04安装ltp后没有ltpstress.sh脚本,无法运行压力测试
- Linux中“/”和“~”的区别
- Freeing init memory 还是启动卡在这个问题
- Centos7.X的内存使用问题
详见https://www.gnu.org/software/gawk/manual/html_node/Field-Splitting-Summary.html#Field-Splitting-Summary
当FS=回车时,每个回车算一个分割,所以第一个被分割的字符是空的,结果中就显示了空行。换一种printf方式就可以看出两者区别。如下:
xxx@ubuntu:~/tmp$ awk 'BEGIN{RS="#";ORS="\n";FS=" "}{printf "-%s-%s-%s-\n", $1, $2, $3}' test.txt
-1111111-2222222-3333333-
-4444444-5555555--xxx@ubuntu:~/tmp$ awk 'BEGIN{RS="#";ORS="\n";FS="\n"}{printf "-%s-%s-%s-\n", $1, $2, $3}' test.txt
-1111111-2222222-3333333-
--4444444-5555555-