从for循环字符串中剪切两个字段,并使用每个字段从文件中复制两个记录

时间:2019-07-18 15:50:13

标签: string grep sh cut

使用for循环,即cat ABC.txt中的for循环 现在,我想从新兴字符串中切出两个不同的字段,并希望从文件中提取这些子字符串。

Ex

for I in `cat ABC.txt`
do
field1=`cut -c10-15 $i`
field1=`cut -c25-30 $i`
grep $field1 zzz.txt
grep $field2 zzz.txt
done

1 个答案:

答案 0 :(得分:0)

该错误消息表示cut命令尝试将变量$i的内容用作文件名,而显然不存在。

要使脚本正常工作,您需要echo变量内容并将其通过管道传递到cut中。

#! /bin/bash

for i in `cat abc.txt`
do

# echo variable content for debugging 
echo "i is ${i}"

field1=$(echo $i | cut -c10-15)
# echo variable content for debugging 
echo "field1 is ${field1}"

field2=$(echo $i | cut -c25-30)
# echo variable content for debugging 
echo "field2 is ${field2}"

grep ${field1} zzz.txt
grep ${field2} zzz.txt
done

也请在此处查看bash script use cut command at variable and store result at another variable或其他类似问题。