awk - 使用 sed 重新格式化行,将一个部分复制到单独行上其他部分的开头
问题描述
对于 LS_COLORS 和 ~/.dir_colors 加载过滤器(sed?)而不是"pattern color" "pattern color"
... 在 10 行上,我想DEF_COLOR color pattern pattern pattern...
在一行上。sed 如何重新格式化一行以便我可以使用
DEF_COLOR 31 .tar .tgz .zip .z .gz .bz .tbz .tbz
并获得实际配置文件格式所需的许多行?像这样...
.tar 31
.tgz 31
.zip 31
.z 31
.gz 31
.bz 31
.tbz 31
解决方案
我喜欢 sed,但我不喜欢它。(它不能很好地做字段分隔符)
这是一个 perl 版本。
perl -lne '@f=split;print "$_ $f[1]" for @f[2..$#f]'
- 将行拆分为数组
@f
- 用于
-l
在每次打印时换行 - 打印
@f
从第 3 个到最后的每个项目,然后是第 2 个项目
或者,正如@tshiono 指出的那样,添加-a
以自动获取数组:
perl -lane 'print "$_ $F[1]" for @F[2..$#F]'
一般来说perl -p
,perl -n
将 perl 置于类似于sed
and的流处理模式sed -n
......但有更多可用的工具。
推荐阅读
- java - Eclipse 缺少文档中的 SingleTokenScanner
- python - 存储 Flask 请求信息以便能够重新发送它
- database - 数组 vs 向量 vs 元组?
- sql - 在 postgresql 中的两个日期之间花费更多时间
- android - 谷歌地图自定义标记仅添加一次
- asp.net-mvc - 使用 mvc web api 针对 Windows AD 组验证 Angular 4 应用程序中的每条路由
- java - 从列表映射java8中获取单个键的所有值
- postgresql - 在 Grafana 中以字母值作为 x 轴创建直方图
- python - Maya Python:如何获取场景名称而不是路径或扩展名
- node.js - 将 Github 项目安装到 localhost 并运行