0
我试图搜索文件中给定的文本并查找其最后出现索引。 该任务是将搜索到的索引追加到同一个文件中,但放在单独的列中。 我能够完成任务,但寻找更有效的解决方案。Unix Shell:搜索文件并追加最后一次出现
以下是详细说明:
names_file.txt
tarun trehan vikram batra allzhere blog allzhere android apps allzhere on facebook contact updater utility help me
我运行下面的命令在临时文件即names_searched.txt
grep "n" names_file.txt > names_searched.txt
以获取结果以下是结果:
tarun trehan allzhere android apps allzhere on facebook contact updater utility
现在,我运行以下awk命令来提取“n”的最后一个索引。
cat names_searched.txt | awk -F"n" '{print length($0) - length($NF)}' > namex_srch_idx.txt
以下是结果:
12 11 11 3
现在我粘贴文件准备一个结果文件,即
paste names_searched.txt namex_srch_idx.txt > names_result.txt
以下是理想的结果:
tarun trehan 12 allzhere android apps 11 allzhere on facebook 11 contact updater utility 3
是有一个工作我们不需要创建登台文件,仍然可以获得相同的结果?
甚至'awk的-F “N”“NF> 1 {打印$ 0,长度($ 0) - 长度($ NF)}'文件'。因此,没有“n”的行将有NF == 1,因此不会打印。 – fedorqui
谢谢......已更新。 – sat
+1不错的解决方案! –