awk - 拆分但保留几个分隔符
问题描述
我有一个大文件,第一列的格式如下。可以有 3-6 个不同的 id,用“_”分隔
s1_asd_ucsd
b4_asd_id_vu
c10_id_js_uw
d4_sch_vu
我想将此列拆分为两列。第 2 列包含最后一个 id,第 1 列包含初始 id;像下面这样
s1_asd ucsd
b4_asd_id vu
c10_id_js uw
d4_sch vu
我知道如何通过以下方式打印最后一列;但不知道如何在保留分隔符的同时打印以前的 id。
awk '{n=split($1, b, "_"); }{ print b[n]}'
解决方案
sed
使用贪心匹配模式的简单解决方案:
sed -E 's/(.+)_(.+)/\1 \2/' file
s1_asd ucsd
b4_asd_id vu
c10_id_js uw
d4_sch vu
推荐阅读
- python - 使用 Python 子进程运行 .bat 文件并执行命令
- c# - 如何在 .NET Core 中撤销自签名证书?
- node.js - 导出函数在模块外给了我未定义的值
- r - 在 dplyr(版本 > 1.0.0)中使用过滤器,其中字段和值都在变量中
- matlab - Matlab:将图像帧保存为 YCbCr 视频
- mongodb - 如何使用 Mongo C 驱动程序插入带有空键的文档?
- sql-server - 使用 CASE WHEN EXISTS () 选择的连接表不可用
- java - 使用 HTTP Basic 和 OIDC Bearer Token 的 Spring Security 身份验证
- javascript - 如何不让父 css 影响子组件的 css?
- css - Bootstrap 4:内容重叠的固定位置侧边栏