linux下的格式问题,与读取不了最后一行

转载 2013年12月03日 19:43:59


vim中显示windows或者dos的换行符^M

http://blog.chinaunix.net/uid-14214482-id-3220695.html

 

linux下,如果需要在vim中查看^M,需要使用如下命令:e ++ff=unix %

 

有时候,我们在 Linux 中打开曾在 Win 中编辑过的文件时,会在行尾看到 ^M字符。虽然,这并不影响什么,但心里面还是有点不痛快。如果想要删除这些 ^M 字符,可以使用 Vim 来轻松搞定它。

Vim 的命令模式中输入 :%s/^M$//g 后,回车即会自动删除该文件中的所有 ^M 字符。

^M 注意要用 Ctrl + V Ctrl + M 来输入

Linuxwindows下回车换行格式转换回车换行结尾转换  

http://rocolex.blog.163.com/blog/static/6844641020115241629669/

 

一、windows的文件到linux下的转换方法:

1. sed命令替换

sed -e 's/^M//g' original.txt > target.txt (注意^M Linux/Unix下是这样输入的:先按CTRL+v,接着按CTRL+SHIFT+m,呵呵~~ 其实俺主要就是为了记录一下这个输入方法)

2. vi中替换

:%s/^M//g
3.sed
命令替换
sed -e 's/.$//' dos.txt > linux.txt

二、Linux文本传到windows系统,转换方法:
sed -e 's/$/\r/' 1pnet.txt >dos.txt

 

 

while read的关于读取最后一行的问题

 

http://bbs.csdn.net/topics/390108418

 

windows使用\r\n作为行结尾,而unix使用\n作为行结尾

使用notepad编辑的文件,如果最后一行没有回车,采用二进制方式上传到unix后,因为最后一行没有\n,会被认为是不完整的文件

循环读到最后一行后,认为达到文件结尾,那个read SERVER会返回假,循环结束。


1
、最好使用dos2unix命令转换为unix格式
2
、实在不行,只能在while循环之后,再添加一个额外处理

 

[shell] while read line最后一行读不出  

http://wangjunle23.blog.163.com/blog/static/11783817120135254317901/

 

如果存在一个文本${file},使用while read line去读取时发现,最后一行无法读出:

 

        while read line
        do
            echo "$line 1 n"
        done < ${file}

 

如何解决这种情况呢,可以考虑以下的方法:

    DONE=false
    until $DONE 

    do read || DONE=true
        echo "$REPLY 1 n"
    done < ${files}

 

shell脚本里获取字符串的最后一个字符

STR=123456abc FINAL=`echo ${STR: -1}` 或者 FINAL=${STR: -1} 都可以让FINAL获得c这个最后一个字符...
  • njchina
  • njchina
  • 2015年11月27日 13:37
  • 8299

[shell] while read line 与for循环的区别

while read line 与for循环的区别 ---转载整理 while read line 是一次性将文件信息读入并赋值给变量line ,while中使用重定向机制,文件中的所有信息都被读入并...

linux命令截取最后n行(所有命令)

tail -n a.txt > b.txt 联想:系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dm...

使用Busybox'创建根目录文件系统以及制作ext2格式的镜像

1.第一步去busybox官网(点击打开链接)下载最新版本的busybox,我使用的是1.24版本的。 2.修改busybox源码的Makefile 文件: ARCH = arm ...

Ramdisk的制作,以及genext2fs和mkiamge的工具使用

在嵌入式系统中,有时出于主板硬件成本的考虑,可能会没有NANDFLASH设备,并且SPI-FLASH也只有512K可以放下一个bootloader,这个时候可以采取让bootloader从网络或者硬盘...

【C++】C++ 读取文件最后一行产生的问题

之前写了一个读取文件的代码,发现每次读取的行数都比实际多一行。文档是一行行的数据,最后确实有一个空行,这是因为输出这个文档的时候,每一行都有一个换行符,所以必然导致最后一行有一个空行。这是一个非常普遍...

翻译《有关编程、重构及其他的终极问题?》——12.当使用拷贝黏贴,一定要特别注意最后一行

的确,当连续的代码块大部分类似时,我们会使用复制黏贴来加快编码速度,然后再手动修改每一块不一样的地方,但是——我的经验也是——我们会在最后一行犯错误。作者还严谨的做了统计,不止你、不止我,而是大部分程...
  • headman
  • headman
  • 2016年12月23日 21:20
  • 267

scrollview嵌套listview最后一行显示不全的问题

记录自己的每一个问题,也好让自己记住 实际上不光是ListView,其他继承自AbsListView的类也适用,包括ExpandableListView、GridView等等,都会有这样的问题 ...

Dialog嵌套listview最后一行被遮盖问题

最近项目中实现了一个功能 Dialog中嵌套ListView 顺利完成后 发现最后一行数据有被遮盖的问题  先上代码 Drawable drawable = getResources().g...

JAVA如何实现读取文件最后一行记录,在文件的结尾追加记录

RandomAccessFile rf = null; System.out.println(new Date().getTime()); try { rf = new RandomAccessFi...
  • ifm444
  • ifm444
  • 2011年05月16日 14:39
  • 11421
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux下的格式问题,与读取不了最后一行
举报原因:
原因补充:

(最多只允许输入30个字)