[英]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.