Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix带分隔符的单独字符串行_Unix_Awk_Delimiter - Fatal编程技术网

Unix带分隔符的单独字符串行

Unix带分隔符的单独字符串行,unix,awk,delimiter,Unix,Awk,Delimiter,我在txt文件中有几行字符串,如下所示: input.txt--> 我的密码是这个。它不适用于太空。 请帮忙 awk -F";" '{print $1,$2,$3,$4}' input.txt | while read var1 var2 var3 var4 Do echo 'var1 = ' $var1 echo 'var2 = ' $var2 echo 'var3 = ' $var3 echo 'var4 = ' $var4 Done 所需输出--> 这可以使它: whi

我在txt文件中有几行字符串,如下所示:

input.txt-->

我的密码是这个。它不适用于太空。 请帮忙

awk -F";" '{print $1,$2,$3,$4}' input.txt | while read var1    
var2 var3 var4 
Do
 echo 'var1 = ' $var1
 echo 'var2 = ' $var2
 echo 'var3 = ' $var3
 echo 'var4 = ' $var4
Done
所需输出-->

这可以使它:

while IFS=';' read -r val1 val2 val3 val4
do
  echo "val1 = $val1"
  echo "val2 = $val2"
  echo "val3 = $val3"
  echo "val4 = $val4"
done < input.txt
它基本上定义了
作为带有
-F”;“
的字段分隔符。然后使用i的
遍历所有这些字段并打印它们
NF
表示字段的数量,循环最多为
NF-1
,因此不会显示最后一个空循环

试验 这可以使它:

while IFS=';' read -r val1 val2 val3 val4
do
  echo "val1 = $val1"
  echo "val2 = $val2"
  echo "val3 = $val3"
  echo "val4 = $val4"
done < input.txt
它基本上定义了
作为带有
-F”;“
的字段分隔符。然后使用i
遍历所有这些字段并打印它们
NF
表示字段的数量,循环最多为
NF-1
,因此不会显示最后一个空循环

试验
为什么在读取时将awk输出传递给
。。。做完成
循环。您可以在
awk
中获得非常复杂的解析和打印。祝你好运。为什么在读取时将awk输出传递给
。。。做完成
循环。您可以在
awk
中获得非常复杂的解析和打印。祝你好运。谢谢@Kent,我正在调整我的测试以显示预期的变量。。。错过了一些:)+1代表
awk
version你可以做
Oooh谢谢@JS웃! 所以我在我的朋友的帮助下回答了这个问题friends@fedorquiDando y Dando,pajarito volandoHehe我们在这些标签中是这样一个家庭:)@JS웃谢谢@Kent,我正在调整我的测试以显示预期的变量。。。错过了一些:)+1代表
awk
version你可以做
Oooh谢谢@JS웃! 所以我在我的朋友的帮助下回答了这个问题friends@fedorquiDando y Dando,pajarito volandoHehe我们在这些标签中是这样一个家庭:)@JS웃
while IFS=';' read -r val1 val2 val3 val4
do
  echo "val1 = $val1"
  echo "val2 = $val2"
  echo "val3 = $val3"
  echo "val4 = $val4"
done < input.txt
$ awk -F";" '{for (i=1; i<NF; i++) {print "val"i,"=",$i}}' input.txt
$ while IFS=';' read -r val1 val2 val3 val4; do echo "val1 = $val1"; echo "val2 = $val2"; echo "val3 = $val3"; echo "val4 = $val4"; echo; done < a
val1 = abc
val2 = def
val3 = ghi jklm
val4 = mno pqr

val1 = abcde
val2 = fgh
val3 = ijk lmno
val4 = pqrs tuv
$ awk -F";" '{for (i=1; i<NF; i++) {print "val"i,"=",$i}}' a
val1 = abc
val2 = def
val3 = ghi jklm
val4 = mno pqr
val1 = abcde
val2 = fgh
val3 = ijk lmno
val4 = pqrs tuv