从bash中的文件读取的行中删除linebreak

时间:2014-06-11 09:27:13

标签: bash shell

我有一个包含一些行的文件。我想将每一行存储到一个变量中,但是必须在shell脚本中对该行进行限制(在perl-chomp($ Line)中完成它的方式)。

包含打开文件和读取行的功能的代码是

p_file() {

File=$1
count=0

while read LINE
do
      chomped_line=$LINE    **#How to delete the linebreaks** 
      echo $chomped_line

done < $File

}

如何删除换行符并将字符串存储在变量(chomped_line)中,如上所述

1 个答案:

答案 0 :(得分:10)

只需使用

while IFS=$' \t\n\r' read -r LINE

它会排除前导和尾随空格,甚至每行返回字符(\r)。不需要扼杀它。

如果您仍想要包含\n和/或\r以外的其他空格,请不要指定其他空格:

while IFS=$'\n\r' read -r LINE

如果您不喜欢使用IFS,另一种方法就是删除\r

chomped_line=${LINE%$'\r'}

* -r可防止反斜杠转义任何字符。