我想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
由于变量中只有纯文本,因此将它们重定向到 while-read 循环似乎过于复杂。
出了什么问题
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