[英]Bash read file line by line, split by tab, send to java application
我想逐行讀取文件,然后構造一個args字符串,然后使用該字符串啟動Java應用程序。
例如,文件test.txt包含以下行,各列用制表符分隔:
abc def ghj kln
asd ss fdf twe
#!/bin/bash
IFS=$'\n'
while read k d a m s
do
echo java -jar test.jar -k $k -d $d -a $a -m $m -s $s
done < test.txt
不幸的是,它不起作用。 bash輸出損壞:
-k abc def ghj kln -d -a -m -s
您說各列之間用制表符分隔,因此對於IFS
應該使用\\t
而不是\\n
,這意味着換行符:
IFS=$'\t'
(假設輸入的每一行都包含用制表符分隔的k
, d
, a
, m
, s
的值)。
您只需要更改IFS以在選項卡\\t
上分開,而不是在新行\\n
上分開即可:
#!/bin/bash
while IFS=$'\t' read k d a m s
do
echo java -jar test.jar -k "$k" -d "$d" -a "$a" -m "$m" -s "$s"
done < test.txt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.