簡體   English   中英

Bash逐行讀取文件,按選項卡拆分,發送到Java應用程序

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

(假設輸入的每一行都包含用制表符分隔的kdams的值)。

您只需要更改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.

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