[英]read line and remove newline character using shell script
我有基於文本文件中的值生成 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 變量正確地從文本文件中獲取值,但它有換行符我如何刪除換行符。
您可能在 Windows 機器或其他帶有 dos 行結尾的設置上生成了文本文件。 您可以通過以下任一方式解決此問題
cat $FILE | tr -d '\r' | while read LINE ...
cat $FILE | tr -d '\r' | while read LINE ...
cat $FILE | awk '{print $1}' | while read LINE ...
cat $FILE | awk '{print $1}' | while read LINE ...
如果tabeNames.txt
來自 Windows,你應該做一個dos2unix過濾器。
我在處理 Fedora 上 Busybox docker 容器的輸出時遇到了這個問題。
我正在使用 docker run 的輸出進行進一步處理,但無法讓它工作多個小時。
我通過管道輸出到文件解決了我的問題
...
res=$(docker run -it ....)
echo $res > tmp.txt
dos2unix tmp.txt
cat tmp.txt | while read line;
do
...
希望這可以幫助其他人解決容器輸出的類似問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.