印刷物の各行を繰り返します。

印刷物の各行を繰り返します。

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"

デフォルトでは、各行に表示されるすべての単語を印刷する必要があります。

詳細を追加:

Var1var2ファイルに含まれる発生行を検索して変数に入れます。

文字通り、次の行は次のようになります。

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

これはあなたが望むものですか?

#!/usr/bin/env bash
IFS=$'\n'; var1=( $( ... your command here ... ) );
IFS=$'\n'; var2=( $( ... your command here ... ) );

for i in ${!var1[@]}; do
  echo ${arr1[$i]};${arr2[$i]};uvuveve
done

これは同じ数の行を前提としていvar1ます。var2

オリジナル:

  1. あなたのコマンドを配列変数に変換します。源泉
  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

関連情報