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

smk*_*smk 3 linux shell

我有shell脚本,它根据文本文件中的值生成sql查询.我的文本文件的值如下(逐行) 在此输入图像描述

我的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
Run Code Online (Sandbox Code Playgroud)

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

She*_*tJS 8

您可能在Windows机器上或使用dos行结尾的其他设置上生成了文本文件.你可以解决这个问题

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