当前位置: 首页 > news >正文

SHELL21 格式化输出

awk 'BEGIN{FS=""}{for(i=1;i<=NF;i++){if((NF-i)%3==0&&i!=NF) printf $i",";else printf $i};printf "\n"}' nowcoder.txt

这个 AWK 命令的目的是对文本文件 nowcoder.txt 中的每一行进行处理,将每三个字符插入一个逗号,以增强可读性。以下是对代码的逐行解释:

BEGIN{FS=“”}:这是 AWK 的 BEGIN 块,用于在处理文本行之前执行一些初始化操作。FS=“” 表示将字段分隔符设置为空字符串,这样 AWK 会将每个字符都视为一个独立的字段。

{…}:这是主体部分,用于处理每一行。

for(i=1;i<=NF;i++):这是一个循环,遍历当前行的每个字符,其中 NF 表示字段数量,因为将字段分隔符设置为空字符串,所以每个字符被视为一个字段。

if((NF-i)%3==0 && i!=NF):这是一个条件语句,检查当前字符的位置是否是每三个字符的位置(且不是行末尾的字符)。

(NF-i)%3==0:表示当前字符是每三个字符的位置。
i!=NF:确保当前字符不是行末尾的字符。
printf $i",":如果当前字符符合条件,就打印当前字符并跟一个逗号。

else printf $i:如果当前字符不符合条件,就直接打印当前字符。

printf “\n”:在处理完一行后,打印一个换行符,使得下一行输出到新的一行。

综合起来,这个 AWK 命令通过将每三个字符插入一个逗号来格式化文本行,以增强可读性。

http://www.lryc.cn/news/258576.html

相关文章:

  • 披荆斩棘的「矿区无人驾驶」,能否真正打开千亿级市场?
  • 智能优化算法应用:基于灰狼算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • 论文阅读三——端到端的帧到凝视估计
  • mysql 快捷登陆
  • 理解排序算法:冒泡排序、选择排序与归并排序
  • 算法-02-排序-冒泡插入选择排序
  • 流量异常-挂马造成百度收录异常关键词之解决方案(虚拟主机)
  • 磁力计LIS2MDL开发(1)----轮询获取磁力计数据
  • C++学习笔记—— C++内存管理方式:new和delete操作符进行动态内存管理
  • 8、操作符重载
  • 前端组件库开发
  • 自定义日志打印功能--C++
  • gitlab注册无中国区电话验证问题
  • 【JAVA基础题目练习】----第二天
  • node.js和npm的安装与环境配置(2023最新版)
  • ke14--10章-1数据库JDBC介绍
  • 【IC验证】perl脚本——分析前/后仿用例回归情况
  • Ansible适合的场景是什么?
  • Flink 读写 HBase 总结
  • 记录一次chatGPT人机协同实战辅助科研——根据词库自动进行情感分析
  • Java_LinkedList链表详解
  • MacOS 12 开放指定端口 指定ip访问
  • LeedCode刷题---滑动窗口问题
  • leetcode24. 两两交换链表中的节点
  • TCP传输层详解(计算机网络复习)
  • 【LuatOS】简单案例网页点灯
  • 百度APP iOS端包体积50M优化实践(七)编译器优化
  • STM32-新建工程(标准库)
  • Android集成科大讯飞语音识别与语音唤醒简易封装
  • 【Linux】telnet命令使用