#!/bin/bash
#read the text line by line and cut off the extension
while read filenames ; do
dataset=$filenames
nameis=${dataset%.*}
echo "$nameis" >> /infanass/dev/admin/test/parsed.txt
done < /infanass/dev/admin/test/tobeparsed.txt #location where file names w/ extensions are
while read line ; do
grep "^$line$" /infanass/dev/admin/test/parsed.txt >>matches.txt
done < /infanass/dev/admin/test/file1.txt
我比较两个文件之间的文本,如果它们匹配,它们就会被发送到 matches.txt 发送到 matches.txt 的值没有扩展名(只有名称) 我想在发送它们时将 .pdf 添加到所有文件中到 matches.txt 有人有想法吗?
答案1
将最后一个while
循环更改为:
while read line
do
if grep -q "^$line$" /infanass/dev/admin/test/parsed.txt
then
echo "${line}.pdf" >>matches.txt
fi
done < /infanass/dev/admin/test/file1.txt
顺便说一下,如果您在文件中编写脚本,则不需要在循环中使用分号。仅当您在终端中的单行上编写复合命令时才需要它们。