簡體   English   中英

Bash連接來自帶布爾值文件的行

[英]Bash concatenate line from file w/ boolean

我一直在嘗試逐行讀取文件,並輸出每一行的值和布爾結果。

文本文件的內容

082843ab-c1e5-4729-8c03-2cec11996f01
09180b12-21b3-4bdb-a27b-ef9c026909f3

用於解析文件的腳本

#!/bin/bash

my_file="${1}"

declare -a myarray
let i=0
while IFS=$'\n' read -r line_data; do
    myarray[i]="${line_data}"
    ((++i))
done < $my_file

force_transmission="true"
let i=0
while (( ${#myarray[@]} > i ));do
    new_var=${myarray[i++]}
    combined_var="$new_var $force_transmission"
    echo $combined_var

    #this will print out the external id(file)
    #printf "${myarray[i++]}\n"
done

Expectataion

082843ab-c1e5-4729-8c03-2cec11996f01 true
09180b12-21b3-4bdb-a27b-ef9c026909f3 true

實際

true3ab-c1e5-4729-8c03-2cec11996f01
trueb12-21b3-4bdb-a27b-ef9c026909f3

任何幫助將不勝感激,我已經嘗試過像這樣的5種變化

您的輸入文件包含DOS換行符。 在打印時,這些命令會將光標發送回該行的開頭,從而隨后覆蓋內容。

在輸入文件上使用dos2unix ,或修改以下行:

new_var=${new_var%$'\r'} # remove $'\r', a CR character, from the end of new_var

如果那是您要執行的操作,請使用一種專用工具代替bash腳本

更新以消除CR ,只是

$ sed 's/\r$/ true/' file

082843ab-c1e5-4729-8c03-2cec11996f01 true
09180b12-21b3-4bdb-a27b-ef9c026909f3 true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM