shell脚本echo打印错位

在脚本中使用echo命令获取字段时,打印后字符串错位了。

脚本大致如下:

#!/bin/bash  
source /etc/profile  
export LANG=en_US.UTF-8

now_date=`date +"%Y-%m-%d %H:%M"` 
files=`cat ***Path.txt`
now_day=`date +"%Y-%m-%d"`

separator=`echo -e '\u0001'`

for file in $files
do {
   business_name=`echo  $file |  awk -F '|' '{print $2}'`
   vendor_name=`echo  $file |  awk -F '|' '{print $1}'`
   vendor_lead=`echo $file |  awk -F '|' '{print $3}'`
   vendor_phone=`echo $file |  awk -F '|' '{print $4}'`
   authority_lead=`echo $file |  awk -F '|' '{print $5}'`
   authority_lead_dept=`echo $file |  awk -F '|' '{print $6}'`
   authority_lead_phone=`echo $file |  awk -F '|' '{print $7}'`
   alarm_ip="*****"
   alarm_time=$now_date
   alarm_phone="*****"
   
   Path=`echo $file |  awk -F '|' '{print $12}'`
 #  PathName=`echo $(basename $Path)`
  PathName=`echo $file |  awk -F '|' '{print $13}'`
    
    num=`hdfs dfs -ls $Path | grep ".log" | wc -l`   
    num2=`hdfs dfs -ls $Path/.hoodie | grep "$now_day" |  grep "rollback" | wc -l`
    
    #sleep 5s 

    #if [ $num -gt 240 ] || [ $num2 -gt 15 ] ; then
   # echo $business_name$separator$vendor_name$separator$vendor_lead$separator$vendor_phone$separator$authority_lead$separator$authority_lead_dept$separator$alarm_ip$separator$alarm_time$separator$alarm_phone$separator$business_name"|"$PathName"|"$num"|"$num2
   echo $business_name","$vendor_name","$vendor_lead","$vendor_phone","$authority_lead","$authority_lead_dept","$alarm_ip","$alarm_time","$alarm_phone","$business_name"|,"$PathName"|"$num""$num2

   #fi
}& 
done

打印的结果,顺序是错乱的 ,数字跑去了最前面

经过测试,发现获取到的返回值是没问题的,但可能带了某些不可见的字符。

看到了这篇文章,一个shell中诡异问题的解决-腾讯云开发者社区-腾讯云,提到可以在末尾加一个过滤,变成

num=`echo $file |  awk -F '|' '{print $4} | tr -d '\r'`
echo $num

 就达到了删除\r,保证对的换行,

#!/bin/bash  
source /etc/profile  
export LANG=en_US.UTF-8now_date=`date +"%Y-%m-%d %H:%M"` 
files=`cat /*/Path.txt`
now_day=`date +"%Y-%m-%d"`separator=`echo -e '\u0001'`for file in $files
do {business_name=`echo  $file |  awk -F '|' '{print $2}' | tr -d '\r' `vendor_name=`echo  $file |  awk -F '|' '{print $1}' | tr -d '\r'`vendor_lead=`echo $file |  awk -F '|' '{print $3}' | tr -d '\r'`vendor_phone=`echo $file |  awk -F '|' '{print $4}' | tr -d '\r'`authority_lead=`echo $file |  awk -F '|' '{print $5}' | tr -d '\r'`authority_lead_dept=`echo $file |  awk -F '|' '{print $6}' | tr -d '\r'`authority_lead_phone=`echo $file |  awk -F '|' '{print $7}' | tr -d '\r'`alarm_ip="**"alarm_time=$now_datealarm_phone="**"Path=`echo $file |  awk -F '|' '{print $12}' | tr -d '\r' `#  PathName=`echo $(basename $Path)`PathName=`echo $file |  awk -F '|' '{print $13}' | tr -d '\r' `num=`hdfs dfs -ls $Path | grep ".log" | wc -l  | tr -d '\r'`   num2=`hdfs dfs -ls $Path/.hoodie | grep "$now_day" |  grep "rollback" | wc -l | tr -d '\r'`if [ $num -gt 240 ] || [ $num2 -gt 15 ] ; thenecho $business_name","$vendor_name","$vendor_lead","$vendor_phone","$authority_lead","$authority_lead_dept","$alarm_ip","$alarm_time","$alarm_phone","$business_name"|表名:"$PathName"|文件数量:"$num"回滚数量:"$num2fi
}& 
done

原因:

Unix系统里,每行结尾只有“<换行>”,即“\n”,Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”,Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行,而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

因此,\r就是return回到本行行首,这就会把这一行以前的输出覆盖掉。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/807457.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业视觉AI应用总结记录

在工业应用中&#xff0c;一些复杂场景下AI识别用的越来越多了&#xff0c;下面是应用的概念的简单汇总梳理&#xff0c;做记录备份使用。 1.场景分类 AI的场景分类简单来说包含但不限于图像分类、图像分割和目标检测以及字符识别等等。 图像分类 是对整幅图像来说的&#xf…

新鲜出炉!这一套二手平台管理系统,太牛了,直接领取【带源码】

​今天给大家分享一套基于SpringbootVue的二手平台管理系统源码&#xff0c;在实际项目中可以直接复用。(免费提供&#xff0c;文末自取) 一、系统运行图&#xff08;设计报告和接口文档&#xff09; 1、登陆页面 2、后台页面 3、设计报告包含接口文档 二、系统搭建视频教程 …

基于RKNN的YOLOv5安卓Demo

1.简介 基于RKNPU2 SDK 1.6.0版的安卓YOLOv5演示应用程序&#xff0c;选择图片进行对象检测并显示识别结果。 GitHub源码地址&#xff1a;https://github.com/shiyinghan/rknn-android-yolov5 2.实现过程 参考RKNN官方库RKNN Model Zoo提供的YOLOv5对象检测demo&#xff0c…

SQL注入sqli_labs靶场第三题

?id1and 11 and 11和?id1and 11 and 11进行测试如果11页面显示正常和原页面一样&#xff0c;并且12页面报错或者页面部分数据显示不正常&#xff0c;那么可以确定此处为字符型注入。 根据报错信息判断为单引号带括号注入 联合查询&#xff1a; 猜解列名 ?id1) order by 3-…

Java毕业设计 基于springboot vue撸宠平台 宠物系统

Java毕业设计 基于springboot vue撸宠平台 宠物系统 springboot撸宠平台 宠物系统 功能介绍 首页 图片轮播 用户或商家注册 用户或商家登录 登录验证码 店铺信息 店铺详情 店铺投诉 宠物信息 宠物详情 预订 退订 搜索 收藏 点赞 踩 评论 个人中心 更新信息 我的收藏 在线客服…

input输入限制:自动补全两位小数、金额限制两位小数、只能输入正整数

金额自动补全两位小数 <el-input v-model.trim"form.invoice_price" clearable oninput"valuevalue.match(/\d\.?\d{0,2}/,)" blur"form.invoice_priceJEblurFn(form.invoice_price)"/>function JEblurFn(value){return valueNumber(va…

提升法律文书起草效率:AlphaGPT 助力律师快速生成诉讼和仲裁文件

法律文书起草对于法律专业人士而言是一项基础而关键的任务。无论是民事、刑事还是行政诉讼&#xff0c;以及仲裁案件&#xff0c;精确的法律文书撰写对于案件的成功至关重要。然而&#xff0c;这一过程往往既耗时又复杂&#xff0c;尤其是在处理复杂的案情和面对当事人难以理解…

syncfusion-diagram:demo1如何实现

xmlns:syncfusion"http://schemas.syncfusion.com/wpf" xmlns:stencil"clr-namespace:Syncfusion.UI.Xaml.Diagram.Stencil;assemblySyncfusion.SfDiagram.WPF"当我们进入syncfusion的diagram中&#xff0c;可以看到&#xff0c;一个非常炫酷的例子 不仅实…

抖音招聘小程序可以通过抖音直播进行招聘

现在就是抖音报吧&#xff0c;又叫报白名单&#xff0c;它是可以通过抖音直播进行招聘&#xff0c;也可以在小视频中添加小程序&#xff0c;然后不会受到流量的限制。正常&#xff0c;如果您要是在抖音直播&#xff0c;或者是在视频里头说招聘两个字的话&#xff0c;都直播的话…

openGauss 5.0 单点企业版部署_Centos7_x86(下)

上一篇分享了安装环境、配置、创建用户&#xff0c;本篇将继续分享执行、安装、访问数据库。 8、目录规划 --创建存放安装包的目录 mkdir -p /topsoft/soft/openGauss chmod 777 -R /topsoft/soft--创建目录 目录会自动创建&#xff0c;可选择不创建 mkdir -p /topsoft/huaw…

为什么要部署IP SSL证书?怎么申请?

我们需要知道什么是IP SSL证书。SSL&#xff0c;全称为Secure Sockets Layer&#xff0c;即安全套接层&#xff0c;是为网络通信提供安全及数据完整性的一种安全协议。而IP SSL证书就是基于SSL协议的一种证书&#xff0c;它能够为网站和用户的数据传输提供加密处理&#xff0c;…

对称加密学习

对称加密是一种加密技术&#xff0c;它使用相同的密钥进行数据的加密和解密操作。这种加密方法因其高效性和速度优势&#xff0c;在数据加密领域得到了广泛的应用。 下面是两篇文章&#xff1a; AES加密学习-CSDN博客 加密算法学习-CSDN博客 推荐关注加密专栏&#xff1a; …

ThinkPHP审计(1) 不安全的SQL注入PHP反序列化链子phar利用简单的CMS审计实例

ThinkPHP代码审计(1) 不安全的SQL注入&PHP反序列化链子phar利用&简单的CMS审计实例 文章目录 ThinkPHP代码审计(1) 不安全的SQL注入&PHP反序列化链子phar利用&简单的CMS审计实例一.Thinkphp5不安全的SQL写法二.Thinkphp3 SQL注入三.Thinkphp链5.1.x结合phar实现…

Git可视化工具 - 推荐

概述 Git版本管理工具是我们日常开发中常用的工具&#xff0c;熟练使用它可以提高我们的工作效率。 当然老司机基本使用命令行的方式进行操作&#xff0c;新手可借助可视化工具来进行过渡&#xff0c;命令行与可视化工具结合使用来加深对Git的熟悉程度。 下面推荐两个较受欢迎…

[蓝桥杯 2023 国 B] 班级活动

[蓝桥杯 2023 国 B] 班级活动 题目描述 小明的老师准备组织一次班级活动。班上一共有 n n n 名&#xff08; n n n 为偶数&#xff09;同学&#xff0c;老师想把所有的同学进行分组&#xff0c;每两名同学一组。为了公平&#xff0c;老师给每名同学随机分配了一个 n n n 以…

STM32电机控制SDK实战

一、前言 本次测试基于ST开发板NUCLEO-F302R8&#xff0c;驱动板X-NUCLEO-IHM07M1&#xff0c;使用无刷直流电机BLDC实现FOC控制&#xff1b;采样三霍尔传感器检测电机转子位置&#xff1b;基于速度环闭环控制实现电机转动&#xff1b; 二、实战环境 软件环境&#xff1a; 1…

性能测试 —— 性能测试流程!

简介&#xff1a; 性能测试&#xff1a;利用工具模拟大量用户操作&#xff0c;验证系统承受的负载情况。 性能测试&#xff1a;利用工具模拟大量用户操作&#xff0c;验证系统承受的负载情况。 性能测试的目的&#xff1a;找到潜在的性能问题或瓶颈&#xff0c;分析并解决&am…

SpringCloudAlibaba-概述(一)

目录地址&#xff1a; SpringCloudAlibaba整合-CSDN博客 记录SpringCloudAlibaba的整合过程 一、简单概述一下项目情况 项目主要有4个模块和4个微服务&#xff1b; 项目结构如下&#xff1a; mall&#xff1a;父工程 -- common&#xff1a;公共组件&#xff0c;存放公用的实…

01 Hello Python

本节课重点知识点 1、函数&#xff1a; 在python中&#xff0c;函数是已经写好的&#xff0c;可以重复使用的&#xff0c;用来实现单一&#xff0c;或相关联功能的代码段。函数可以使代码模块化&#xff0c;提高重复利用率。 2、内置函数&#xff1a; 程序员已经写好的一些函…

1、Qt UI控件 -- qucsdk

前言&#xff1a;Qt编写的自定义控件插件的sdk集合&#xff0c;包括了各个操作系统的动态库文件以及控件的头文件和sdk使用demo。类似于Wpf中的LivChart2控件库&#xff0c;都是一些编译好的控件&#xff0c;可以直接集成到项目中。该控件是飞扬青云大神多年前开发的&#xff0…