awk改变了OFS,$0却没变化
一个文件1.txt,内容如下
a
b
c
d
e
目的把列变行,输出为: a b c d e
脚本如下:
awk 'BEGIN{RS="";FS="\n";OFS=" "}{print }' test
a
b
c
d
e
理论上应该实现我们想要的 a b c d e
问题出在这里
Understanding
$0 It is important to remember that It is a not-uncommon error to try to change the field But this does not work, since nothing was done to change |
给懒得看英文的人翻译一下:
$0精确的表示你从awk输入中读到的一条记录。它包含了开头和结尾的空格及分割字段间的空格(或其它字符)
这里有一个很不寻常的错误会发生,当你通过FS或OFS改变了记录的分隔符时,而你正好想用print或print $0打印出这条记录,但是
它不会如你所愿的(正如我们上面的例子),因为这条记录没有任何改变,所以你要强制改变这条记录,方法就是
$1=$1或$2=$2或随便你想改变什么变量。
It works !
quke@Raphaelqu:/tmp$ awk 'BEGIN{RS="";FS="\n";OFS=" "}{$1=$1;print}'
1.txt
a b c d e f g
详情参考:
http://www.gnu.org/software/gawk/manual/html_node/Changing-Fields.html
awk改变了OFS,$0却没变化的更多相关文章
- 有史来最大改变 Android 5.0十大新特性
有史来最大改变 Android 5.0十大新特性 2014.10.16 14:51:31 来源:腾讯数码作者:腾讯数码 ( 0 条评论 ) 距离Android系统上一次重大更新不到一年的时间,谷歌 ...
- [转]Material Design Library 23.1.0的新变化与代码实战
Design Library出来已经快有一个月了,当时大概看了一下介绍这个新版本变化的译文,内容不多,给我印象最深的就是Percent lib.AppBarLayout 和NavigationView ...
- Material Design Library 23.1.0的新变化与代码实战
Design Library出来已经快有一个月了,当时大概看了一下介绍这个新版本变化的译文,内容不多,给我印象最深的就是Percent lib.AppBarLayout 和NavigationView ...
- 有时候当你改动了xib   你调试,各种改的时候又没变化的时候
当你xib 改变了 调试的时候又没变化的时候,当你各种改错无用的时候,就是xcode xib的缓存问题了. please clear xcode . command + shift + K . ...
- fio 测试 磁盘I/O: ls -1 /sys/block/sda/queue/ | awk '{cmd="cat "i$0; print i$0; system(cmd) }' i=`pwd`'/'
小型计算机系统接口(SCSI,Small Computer System Interface) SAS(Serial Attached SCSI,串列SCSI) SCSI 硬盘名称: sd[a-p] ...
- linux文件删除,剩余空间没变化
centOS6.6,删除了一个13G的文件,但是使用df -h 查看,剩余空间没变化这个文件夹查看 du -h查看发现空间已经变少了.原因可能是删除文件时有进程在使用文件,导致空间未释放.yum in ...
- Vue1.x 到Vue2.0的一个变化
小弟初来乍到,写的不好的地方还望指正.谢谢各位! 废话不多说 进入正题: Vue1.x到2.0的一个变化 1. 在每个组件模板,不在支持片段代码 组件中模板: 之前: <templa ...
- vue2.0有哪些变化
vue2.0之后有哪些变化: 1.每个组件模板template,不再支持片段代码 之前: <template> <h3>vue-router+vue-loader</h3 ...
- AWK改变输入输出分隔符实例分析
awk默认从STDIN接受数据,打印文本到STDOUT. awk的默认输入和输出分隔符: FS : 输入字段分隔符,默认空格. RS : 输入行分隔符,默认\n. OFS : 输出字段分隔符,默认空格 ...
随机推荐
- HTML5 Input 类型
浏览器支持 Input type IE Firefox Opera Chrome Safari email No 4.0 9.0 10.0 No url No 4.0 9.0 10.0 No numb ...
- Plugins
Plugins AdminLTE makes use of the following plugins. For documentation, updates or license informati ...
- asp.Net2.0中TextBox设置只读后后台获取不到值的解决方法
http://www.cnblogs.com/yxyht/archive/2013/03/02/2939883.html ASP.NET中TextBox控件设置ReadOnly="tru ...
- 使用context来传递数据,一个context是一系列变量
页面设计工作和python代码分离,所以我们引用模板来实现这个功能. 一.模板实例 下面是一个模板的实例: [python]<html><head><title>O ...
- win10如何让她闭嘴、按什麽建系统都要说话、如何让她闭嘴?
win10如何让她闭嘴.按什麽建系统都要说话.如何让她闭嘴? 开始 设置 轻松使用 讲述人,关掉……
- python的内存管理机制
先从较浅的层面来说,Python的内存管理机制可以从三个方面来讲 (1)垃圾回收 (2)引用计数 (3)内存池机制 一.垃圾回收: python不像C++,Java等语言一样,他们可以不用事先声明变量 ...
- 【转】Linux安装方法一(U盘引导)
Ubuntu 13.04正式版已经在4月25日发布了,相信很多人和我一样很想安装体验一下,但是现在的Ubuntu 13.04文件已经是794M,但是很难刻录到一张CD中,所以采用U盘启动安装Ubunt ...
- mysql中的字符串类型数据索引优化
摘自 "高性能mysql" 对于一些字符串类型较长的字段搜索时, 可以参考如下方法
- Android WebApp开发使用Genymotion连接Fiddler2/Charles代理调试
1. 目的 在模拟器的浏览器或app hybrid开发中遇到chrome调试代码为线上代码或者混淆代码时,可以利用fiddler/charles为genymotion配置代理, 可以方便的 ...
- mac 下面wireshark 找不到网卡
终端上面,执行如下命令: sudo chgrp admin /dev/bpf* sudo chmod g+rw /dev/bpf* http://www.9upk.com/article/25 ...