6

テキスト ファイルの値に基づいて SQL クエリを生成するシェル スクリプトがあります。私のテキストファイルには次のような値があります(行ごと) ここに画像の説明を入力

私のシェルスクリプトはこれです。

#!/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

Windows からの場合tabeNames.txtは、dos2unixフィルターを実行する必要があります。

于 2013-10-25T07:51:27.613 に答える