shell 去掉^M

【实战指南】从零构建UNet多分类分割数据集:标注、转换与训练全流程 本文提供了一份从零构建UNet多分类分割数据集的完整实战指南。详细介绍了使用Labelme进行图像标注的核心技巧与规范,并通过Python脚本将标注结果转换为模型可用的VOC格式。最后,指导如何修改经典的PyTorch版UNet代码,以适配自定义数据集并进行训练与测试,帮助读者完成从数据准备到模型训练的全流程。 阅读详情

shell调试 去掉^M

shell脚本在Windows中打开过,拷到Linux下执行老是出错。

bash$ ./startqftest.sh
bash: ./startqftest.sh: /bin/bash^M: bad interpreter: No such file or directory
bash$ bash startqftest.sh
: command not founde 6:
startqftest.sh: line 105: syntax error: unexpected end of file

在VI中打开也看到不异常,但有一点儿是肯定的,与^M 有关,以前与遇到过,看来这次一定要把这个问题根冶了,不然以后还会来烦人。

使用工具 cat 和 tr, 方法如下:

bash$ cat -v startqftest.sh |tr -d "^M" > qf.sh

其中 startqftest.sh 是存在问题的脚本, qf.sh是新生成的文件。

sed 's/^M//' test.sh > back.sh^M是Ctrl+v Ctrl+m


解释一下, cat 可以查看许多不可见这符,
cat -t 显示TAB 为 ^I
cat -e 显示行尾为 $,
cat -v 显示不可见字符,用^M表示,所以^M就表示不认识的不可见字符。M 表示Mark,标记的意思。
tr - translate or delete characters

另外,cat 还可以用来调Makefile,
cat -t Makefile 查看命令中有非Tab开头的,
grep '^ ' Makefile 查找命令行中以空格开头的行

cat -e Makefile 查看行尾是否正确,防止\后面多一个空格,
grep '\\[ ]$' Makefile 找出以上那样的行

For example:
bash$ cat -n Makefile
1    foo:
2        for i in * ; do \
3            echo $$i >> tmpfile ; \
4        done
5        if [ -f Makefile ] ; then \
6            cat -t -e Makefile ; \
7        fi
8   
bash$
这个Makefile有两处错误,用肉眼是看不出来的。
一处是第2行,命令是以空格开空的,另一处是第6行,\ 换行符到面多了一个空格,这行导致错误。
bash$ make
Makefile:2: *** missing separator. Stop.
bash$
bash$ cat -t Makefile
foo:
for i in * ; do \
^I^Iecho $$i >> tmpfile ; \
^Idone
^Iif [ -f Makefile ] ; then \
^I^Icat -t -e Makefile ; \
^Ifi

bash$ grep '^ ' Makefile
for i in * ; do \
bash$
bash$ cat -e Makefile
foo:$
for i in * ; do \$
echo $$i >> tmpfile ; \$
done $
if [ -f Makefile ] ; then \$
cat -t -e Makefile ; \ $
fi$
$
bash$ grep '\\[ ]$' Makefile
cat -t -e Makefile ; \
bash$

把错误更正后,运行正确,效果如下:
bash$ vi Makefile
bash$
bash$
bash$ make
for i in * ; do \
echo $i >> tmpfile ; \
done
if [ -f Makefile ] ; then \
cat -t -e Makefile ; \
fi
foo:$
^Ifor i in * ; do \$
^I^Iecho $$i >> tmpfile ; \$
^Idone $
^Iif [ -f Makefile ] ; then \$
^I^Icat -t -e Makefile ; \$
^Ifi$
$
【STM32系统】基于STM32设计的锂电池电量/电压检测报警器系统 本设计旨在研究一个基于STM32F103C8T6微控制器的锂电池电量/电压检测报警器系统,应用于便携式电子设备电池管理。系统通过STM32的ADC模块对18650锂电池电压进行采集,利用LCD1602显示模块实时显示电池电压,当检测到电池电量不足或电压异常时,蜂鸣器报警模块会发出警报提醒用户。系统采用简单的硬件结构和优化的软件架构,通过对实际电池电压数据的检测、处理和显示,实现了低功耗、实时监测的锂电池管理功能。本文将介绍系统的设计原理、硬件电路、软件实现以及调试测试过程。 阅读详情

相关推荐

ADS8681数据手册没讲透的细节:SPI时序、量程切换与电压换算的避坑指南

本文深入解析ADS8681数据手册未提及的SPI时序优化、量程切换陷阱与电压校准技巧。针对树莓派5与ADS8681的SPI通信问题,提供CPOL/CPHA配置建议;详解量程切换的位操作玄机与寄存器配置流程;并提出三步校准法应对非理想供电环境,帮助开发者提升ADC测量精度。

weixin_29178069的博客 518

解决 Linux shell 脚本文件出现 ^M 字符的问题(亲自验证)

(1)在Windows编辑Shell脚本,会在行末尾显示^M。这是不同的操作系统对换行处理的结果。(3)通过cat -A net.sh,发现脚本文件多了很多^M 字符。sed -i "s/\r//" 文件名。(1)在Windows 的编辑器编写Shell脚本。(2)拷贝到Linux 去执行,执行失败。

yangbingnew的专栏 4307

保姆级教程:在RK3588开发板上驱动多路MIPI摄像头(从VICAP配置到ISP调优)

本文详细介绍了在RK3588开发板上驱动多路MIPI摄像头的完整流程,从VICAP配置到ISP调优的全方位解析。通过硬件架构分析、开发环境搭建、设备树配置、V4L2数据采集以及ISP图像调优等步骤,帮助开发者高效实现多路摄像头驱动,适用于工业检测和智能安防等领域。

weixin_42552315的博客 388

【笔记】解决shell脚本bash^M: bad interpreter错误

-bash: /usr/local/bin/myrsnyc: /bin/bash^M: bad interpreter: No such file or directory 在windows下粘贴复制了shell脚本,到linux下无法执行,是因为windows和linux的行尾符是不一样的。 windows的行尾符是CRLF linux的行尾符是LF ===================...

小崔的专栏 507

从零到一:i.MX8M Plus开发板全流程开发指南(源码编译、烧录、镜像运行)

本文详细介绍了i.MX8M Plus开发板的全流程开发指南,包括源码编译、烧录和镜像运行等关键步骤。通过实战案例和配置技巧,帮助开发者快速掌握工业级应用开发,提升在边缘计算和AI推理等领域的开发效率。

weixin_30687051的博客 566

OpenCV计算机视觉实战(12)——图像金字塔与特征缩放

图像金字塔技术通过对原始图像按不同分辨率进行多层次表示,不仅能提升计算效率,还能为图像融合、检测与识别提供多尺度特征。高斯金字塔 (Gaussian Pyramid) 用于构建多级低通图像,拉普拉斯金字塔 (Laplacian Pyramid) 则提取各层之间的细节信息。本节将深入介绍如何使用 OpenCV 构建高斯与拉普拉斯金字塔,并以经典的图像融合案例,展示图像金字塔在特征缩放与融合中的强大应用。

qq_30167691的博客 1403

Shell脚本报错:-bash: ./shell1: /bin/bash^M: 解释器错误: 没有那个文件或目录

关于“Shell脚本报错:-bash: ./shell1: /bin/bash^M: 解释器错误: 没有那个文件或目录”的两种解决方法。

Protocol Stack | 传输与通信 5127

【电源专题】LDO基础——热性能2

对于LDO散热而言,选择合适的元件并不是一件简单的任务。为了实现高效、尺寸得当并成本低的散热解决方案,我们在早期设计阶段就需要确保所有器件都可用并且已经考虑到元件和各种特性。

一点硬件 894

Shell脚本编程——Linux下去掉^M回车符的四种办法

代码开发与存储的环境会变化,可能会在Windows系统或Unix/Linux系统下。这样会带来一个问题,在Windows下输入保存的文件,放在Unix/Linux系统下时,可能会发现每行末尾多了一个^M字符。原因是回车换行在两种系统下用的不同符号,Windows下是\a\d,两个字符,Linux下\d,一个字符。结果Windows下多出的\a在Linux下表现为每行末尾多了一个^M字符。Linux

嵌入式Linux研发 1万+

华为OD机考双机位C卷 - 敌情监控 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 敌情监控 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 964

基于Python的股票K线图爬取与形态识别系统

本文详细介绍了一个基于Python的股票K线图爬取与形态识别系统。该系统通过网络爬虫技术获取股票历史数据,使用Matplotlib生成K线图,并应用卷积神经网络(CNN)对经典K线形态进行识别。文章详细阐述了数据采集、K线图生成、CNN模型构建与训练的完整流程,并提供了完整的代码实现。本研究为金融科技领域的毕业设计提供了有价值的参考方案。关键词:Python爬虫、K线图、卷积神经网络、形态识别、股票交易。

2201_76125261的博客 1033

shell去掉^M

在win下编辑的文件,每一行会自动加上一个^M 查看^M ,可以使用  cat -v 命令,显示^M这个特殊字符 将它删除的命令很简单: cat -v aa.txt | tr -d '^M'  > res.txt tr -d 参数是 删除后面所带的字符,这个命令里面带的是  ^M,所以,就会删除 ^M 咯!!! 在此总结,tr命令的用法: -d

黑暗骑士 1万+

C#调用企业微信JS-Sdk实现扫描二维码

企业微信JS-SDK是企业微信面向网页开发者提供的基于企业微信内的网页开发工具包。通过使用企业微信JS-SDK,网页开发者可借助企业微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用企业微信分享、扫一扫等企业微信特有的能力,为企业微信用户提供更优质的网页体验提示:生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是H5应用调用企业微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。

清浅 937

用windows应用创建linux shell脚本时,行尾多了^M 符号的解决办法,去掉 M符号

用windows应用创建linux shell脚本时,行尾多了^M 符号的解决办法,去掉 M符号

weixin_43398250的博客 1390

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Unix下去掉shell脚本^M的方法

有时我们通过windows主机上编写的脚本,传到unix主机上面的时候,发现很^M,看起来非常乱,下面就是如何去除的方法;在vi中:按Esc切换到命令模式输入::%s/^M//g 就可以删除^M^M是通过 Ctrl+v+Shift+m输入的,按住ctrl键按v键,不放ctrl键,再按shift键和m键,完成后全部放开。 转载于:https://blog.51cto...

weixin_33932129的博客 373

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

shell awk用法及 去掉linux系统vi中出现^M字符的方法 shell去除字符串两端空格

awk 循环print str=a/b/c for i in 1 2 3; do echo $str | awk -F/ ‘{print $'$i'}' done 去掉linux系统vi中出现^M字符的方法:  ^M符号是windows系统下的換行符,在windows下的文本通过bin模式ftp上传到了unxi空间出现的,要去掉这些结束符,我们可以用dos2unix命令去掉,也

lengyisheng的专栏 6890

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

linux shell下去掉windows文件的换行^M

cat filename | tr '\n\r' '\n' > test 转载于:https://www.cnblogs.com/sunsweet/p/3554228.html

weixin_30767921的博客 214

shell中用grep查找并且不输出_grep无法查找shell传过来的变量?先注意一下文本格式吧!...

昨天,同事告诉我发现一个诡异的问题,grep无法搜索shell中的变量,着实很惊讶。到他所说的服务器上试了下,还真是不行!大概就是这样一个要求:①、有个文本为userid.txt,里面每一行一个用户id,类似如下:00010003000500070009②、另外还有一个文本为record.txt,里面是所有用户的操作记录,一行一条,并且包含有id,类似如下:[12 11 2014 11:03,19...

weixin_39596975的博客 341

linux 怎么把^M去掉

在linux下,不可避免的会用VIM打开一些windows下编辑过的文本文件。我们会发现文件的每行结尾都会有一个^M符号,这是因为 DOS下的编辑器和Linux编辑器对文件行末的回车符处理不一致, 对于回车符的定义: windows:0D0A unix\linux: 0A MAC: 0D 比较快捷的去除这些符号的方法有这么几种: (1)是用VI的命令:     使用vi打开文本文件     vi 

tanhaodi2012的专栏 267

shell----删除文件中的^M

在Linux下使用vi来查看一些在Windows下创建的文本文件,有时会发现在行尾有一些“^M”。有几种方法可以处理。 1.使用vi的替换功能。启动vi,进入命令模式,输入以下命令::%s/^M$//g # 去掉行尾的^M。:%s/^M//g # 去掉所有的^M。:%s/^M/[ctrl-v]+[enter]/g # 将^M替换成回车。:%s/^M//r/g # 将^M替...

diaoqiongshi2309的博客 1195

使用notepad++删除^M字符

^M字符是由于Windows和Unix对于end-of-line的符号使用不一致引起的。在Windows中,使用return/newline两个符号开始新的一行;在Unix中,使用newline即可开始新的一行。 使用notepad++可以很方便的删除^M字符。Edit menu -> EOL Conversion -> Windows即可。

vernice的专栏 1万+

批量删除shell脚本中的^M

win上面写了一套工具,linux运行报错,^M不认识,这是换行符的差异,替换一下就行 sed -i 's/\r/\n/g' *.sh

k569462166的博客 1904

shell 去除 ^M

:%s/ctl+v+m//g

lyj1101066558的博客 1082

如何取消Linux下,vi中显示的^M符号

^M 是ascii中的'\r', 回车符,是16进制的0x0D,8进制的015,十进制的13。 对于换行这个动作,unix下一般只有一个0x0A表示换行,windows下一般都是0x0D和0x0A两个字符。 另外:^L 是ascii 0x0C '\f', 换页控制符。 而对于Linux 的vi,有些版本,比如我当前开发板里面的vi,是用busybox编译出来的,不能识别windows下...

Bladelogic 229

常用shell命令

shell命令经常忘记,记录下以备下次使用

linqiongjun86的专栏 341

Shell脚本中^M的问题和解决方案

shell脚本中 ^M问题 在开发过程中,有时候不小心将Windows本地创建的shell脚本(以 .sh 结尾的脚本),传到linux系统中,通过 vi或者view命令查看文件时,发现在末尾发现出现了很多^M字符。 ^M 是什么? 这个字符就是换行符。是由于跨平台解析的原因。 因为window和Linux下对行尾的换行的定义不同 Windows: \r\n Linux/Unix: \n Mac: \r 例子 出现的原因: 在DOS/Windows里,文本文件的换行符为\r\n,而在nix系统里则为

csdnjsj的博客 7876
上一篇: 内核抢占和低延迟
下一篇: UBIFS 烧写方法
独角鲸
博客等级 码龄16年 24粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值