【发布时间】:2019-08-30 14:48:07
【问题描述】:
这些是文本文件:
f1.txt:
TXT123456798
TRB0987906554
TXTxzcxczxzcxzc
f2.txt:
TXT999999999
TAB888888888
TXT777777777
从多个文件中Grep TXT,并用文件名一一写入每个剪切子字符串。
我已经尝试过以下代码:
#!/bin/sh
reports_count=`find /home/pverm84/folder1 -cmin -360 | grep txt | wc -l`
reports=($(find /home/pverm84/folder1 -cmin -360 | grep txt))
seq=0
while [ $seq -lt $reports_count ]
do
echo
CAP_reportName=${reports[$seq]}
echo File Name is $CAP_reportName
tbt= grep TXT $CAP_reportName | cut -c 4-6
File1=$(basename $CAP_reportName)
count=$tbt$File1
echo $count
seq=`expr $seq + 1`
done
当前输出:
File name is /home/pverm84/folder1/f2.txt
999
777
f2.txt
File name is /home/pverm84/folder1/f1.txt
123
xzc
f1.txt
异常输出:
newfile.txt
f1.txt 123
f1.txt xzc
f2.txt 999
f2.txt 777
【问题讨论】:
-
预期输出中的
newfile.txt来自哪里?我假设f1.txt/f2.txt是您描述为输入的file1.txt 和file2.txt,这是正确的吗? -
因为我想将输出保存在新文件中
-
标签说 Bash 和 sh,shebang说
/bin/sh,代码有bashisms。是哪个? -
适用于linux