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

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

最佳答案

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

  • 将文件转换为 unix 行以 dos2unix 结尾
  • 删除“\r”字符:cat $FILE | tr -d '\r' |在阅读 LINE ...
  • 使用 awk 之类的实用程序获取第一个字段:cat $FILE | awk '{print $1}' |在阅读 LINE ...

关于linux - 使用 shell 脚本读取行并删除换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19583956/

相关文章:

linux - 为什么 niceness 值与进程优先级成反比?

linux - "not syncing"在内核 panic 中意味着什么?

java - 如何销毁Java Process的子进程

c - 从 C 代码打开 Linux 控制台

unix - 使用 Unix shell 命令将前 1000 行从文本文件移动到新文件

linux - Terraform VM 创建然后删除

linux - 无法使用 Paramiko 的 sudo 命令的交互式远程密码输入

Bash 脚本 - shell 命令输出重定向

bash - 有没有办法将 `script` 与 shell 函数一起使用? (彩色输出)

c - 如何正确地接受来自另一个终端(比如 pts/1)的输入?