txtファイルの内容をコンマ区切りの変数に保存します。

txtファイルの内容をコンマ区切りの変数に保存します。

こんにちは。キーを含むtxtファイルがあります。

a.txt:

1234
4567
4568
4564
6754
warning message
invoke from function

以下のように、このファイルの内容を変数parmに書き込む必要があります。

1234,4567,3456,2345

しなければならない最後の2行省略ファイルにもあります。

答え1

GNUheadまたは互換バージョンを使用すると、負の数を使用してファイルの末尾から指定された数の行を削除できます。

parm=$(head -n -2 < a.txt | paste -sd , -)

そしてzsh

parm=${(j:,:)"${(@f)$(<a.txt)}"[1,-3]}

(これにより、$(<a.txt)末尾の改行がすべて削除されるため、末尾の空白行が削除され、[1,-3]2つの追加行が削除されます。)

POSIX的に:

parm=$(sed '$d' < a.txt | sed '$d' | paste -sd , -)

または以下を使用してawk

parm=$(awk 'NR>2 {printf "%s",  sep b; sep = ","}
            {b = a; a = $0}' < a.txt)

関連情報