uvuveve
次のように、各行の終わりにwhileステートメントの各出力を印刷したいと思います。
var1;var2;uvuveve
var1;var2;uvuveve
var1;var2;uvuveve
var1;var2;uvuveve
var1;var2;uvuveve
これは私のコードです。
var1="somedata..."
var2="anotherdata..."
while read -u3 w1; read -u4 w2; do
echo "$w1;$w2" >> $file
done 3<<< "$var1" 4<<<"$var2"
var1、var2はファイルから複数の項目を印刷するため、これらの変数の出力はたくさんあります。私はuvuveve
次の単語を追加しようとしています。
var1="somedata..."
var2="anotherdata..."
string="uvuveve"
while read -u3 w1; read -u4 w2; read -u5 w3; do
echo "$w1;$w2;$w3" >> $file
done 3<<< "$var1" 4<<<"$var2" 5<<<"$string"
デフォルトでは、各行に表示されるすべての単語を印刷する必要があります。
詳細を追加:
Var1
&var2
ファイルに含まれる発生行を検索して変数に入れます。
文字通り、次の行は次のようになります。
var1=$(grep -A12 -B12 "$tofind" $findlogs | grep Date | cut -c 51-65 | sed -e 's! !/!g')
var2=$(grep -A12 -B12 "$tofind" $findlogs | grep Date | cut -c 67-71 | sed -e 's/://g')
答え1
変数にはプレーンテキストしかないため、読み込み中にループにリダイレクトするのは複雑すぎるようです。
何が間違っていますか?
var1="somedata..."
var2="anotherdata..."
string="uvuveve"
echo "$var1;$var2;$string"
# or
printf '%s;%s;%s\n' "$var1" "$var2" "$string"
ファイルがある場合はループが必要です。私たちが持っているなら
$ cat file1
a
b
c
$ cat file2
1
2
3
それから
string="uvuveve"
while IFS= read -r -u3 a; read -r -u4 b; do
printf '%s;%s;%s\n' "$a" "$b" "$string"
done 3<file1 4<file2
a;1;uvuveve
b;2;uvuveve
c;3;uvuveve
編集内容に戻るには、次を使用します。プロセスの交換S
# don't repeat yourself
dates=$(grep -A12 -B12 "$tofind" $findlogs | grep Date)
string="uvuveve"
while IFS= read -r -u3 a; read -r -u4 b; do
printf '%s;%s;%s\n' "$a" "$b" "$string"
done 3< <(echo "$dates" | cut -c 51-65 | sed -e 's! !/!g') \
4< <(echo "$dates" | cut -c 67-71 | sed -e 's/://g')
答え2
答え3
次のコマンドを試してください
$ j="praveen"
$ k="ajay"
$ m="abhi"
$ awk -v j="$j" -v k="$k" -v m="$m" '{print j"\n"k"\n"m;exit}'
praveen
ajay
abhi