读取行并使用shell脚本删除换行符

时间:2013-10-25 07:41:10

标签: linux shell

我有shell脚本,它根据文本文件中的值生成sql查询。我的文字文件 具有如下值(逐行) enter image description here

我的shell脚本就是这个。

#!/bin/sh
NAME="tableNames.txt"
COLUMNA="ca"
COLUMNB="cb"
cat $NAME | while read LINE

do
echo "CREATE TABLE \"$LINE\" (
        forward_speed double precision,
    backward_speed double precision
      );"
done

LINE变量正确地从文本文件中获取值,但它有换行符,如何删除换行符。

2 个答案:

答案 0 :(得分:6)

您可能在Windows机器上或使用dos行结尾的其他设置中生成了文本文件。您可以通过

解决这个问题
  • 使用dos2unix将文件转换为unix行结尾
  • 删除' \ r'字符:cat $FILE | tr -d '\r' | while read LINE ...
  • 使用像awk这样的实用程序来抓取第一个字段:cat $FILE | awk '{print $1}' | while read LINE ...

答案 1 :(得分:1)

如果tabeNames.txt来自Windows,您应该执行dos2unix过滤器。