6

我有基于文本文件中的值生成 sql 查询的 shell 脚本。我的文本文件的值如下(逐行) 在此处输入图像描述

我的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 变量正确地从文本文件中获取值,但它有换行符我如何删除换行符。

4

2 回答 2

20

您可能在 Windows 机器或其他带有 dos 行结尾的设置上生成了文本文件。您可以通过以下任一方式解决此问题

  • 使用 dos2unix 将文件转换为 unix 行尾
  • 删除 '\r' 字符:cat $FILE | tr -d '\r' | while read LINE ...
  • 使用 awk 之类的实用程序来获取第一个字段:cat $FILE | awk '{print $1}' | while read LINE ...
于 2013-10-25T07:50:26.437 回答
2

如果tabeNames.txt来自 Windows,你应该做一个dos2unix过滤器。

于 2013-10-25T07:51:27.613 回答