cut获取最后一列字段

cat file | rev | cut -d’.’ -f 1 | rev

即先每行字符串反转,把最后一个都变成第一个,然后把获得的字符串再反转回来。

参考:http://www.cocoachina.com/articles/61694

### 使用 Vim 提取并显示文件的第一列 为了在 Vim 中仅显示文件的第一列,可以通过多种方法实现这一目标。以下是几种常见的方式: #### 方法一:通过正则表达式删除其他列 可以在正常模式下执行如下命令来保留每行的第一个单词(假设每一列之间由空白字符分隔),从而达到只留下第一列的效果。 ```vimscript :%s/\(\S\+\)\s.*$/\1/ ``` 这条指令会匹配每一行中的第一个非空白字符串序列 `\(\S\+\)` 并捕获它作为第一组;接着继续匹配后续的一个或多个空白符 `\s` 和任意数量的其它字符 `.*` ,直到行尾 `$` 。最后替换整个匹配部分为最初捕获的内容即第一列数据 `\1` [^2]。 #### 方法二:利用外部工具 awk 或 cut 结合 :%! 进行处理 如果安装有 Unix/Linux 系统上的标准文本处理程序,则可以直接调用它们来进行更复杂的字段提取工作。例如下面的例子展示了怎样借助于 `awk '{print $1}'` 来获取输入流里的首个字段,并将其回写入当前缓冲区中覆盖原有内容。 ```vimscript :%!awk '{print $1}' ``` 对于固定宽度格式的数据集来说,还可以考虑采用 `cut` 命令代替 `awk` 完成相同任务: ```vimscript :%!cut -d' ' -f1 ``` 这里 `-d' '` 参数指定了以单个空格为空白定界符,而 `-f1` 表明只需要取得第一个域 [^3]。 #### 方法三:编写自定义函数批量操作 当面对更加复杂的需求时,不妨尝试创建一个简单的脚本来完成特定的任务。比如下面这个例子就展示了一个用于截断各行长度不超过给定位移位置的小插件代码片段。 ```vimscript function! FirstColumn() let col = 1 " 设定要保留的最大列宽 g/^/let line=getline('.') | let new_line=line[:col-1] | call setline('.',new_line) endfunction command! FC :call FirstColumn() ``` 保存上述代码至 `.vimrc` 文件之后重启 Vim 即可用新定义好的命令 `FC` 对选定范围内的所有行应用此变换逻辑 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值