如何在Bash中使用“read”命令读取以<CR><LF>结尾的整行数据?

4

我有一个文件,内容如下:

1 2 3 <CR><LF>
1 2 3 <CR><LF>
1 2 3 <CR><LF>

我读取文件中的每一行,希望能够每次获得 "1 2 3" 这个字符串。你需要怎么做?


1
什么是问题?你尝试了什么? - devnull
1个回答

8
你可以像这样做:

你可以这样做:

cat file | tr -d "\r" | while read line ; do echo $line ; done

测试环境

printf "1 2 3\r\n4 5 6\r\n" | tr -d "\r" | while read line ; do echo $line ; done

6
不需要猫:tr -d '\r' < 文件名 | while ... - glenn jackman
@glennjackman 移除CR是必要的。看看这个printf "\r" | ( read line ; echo $line | hd; )。如果我们想在shell中使用数字进行一些计算,那么这将非常痛苦。 - Grzegorz Żur
2
@Grzegorz:需要删除CR,但不需要使用cat命令。请参阅Useless Use of Cat - Gordon Davisson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接