0

我正在尝试搜索文件中的给定文本并找到其最后出现的索引。任务是将搜索到的索引附加到同一个文件但在单独的列中。我能够完成任务,但正在寻找更有效的解决方案。

以下是详细说明:

名称文件.txt

塔伦特雷汉
维克拉姆巴特拉
博客
allzhere 安卓应用
脸书上的所有地方
联系更新实用程序
帮我

我运行以下命令来获取暂存文件中的结果,即 names_searched.txt

grep "n" names_file.txt > names_searched.txt

结果如下:

塔伦特雷汉
allzhere 安卓应用
脸书上的所有地方
联系更新实用程序

现在,我运行以下 awk 命令来提取“n”的最后一个索引。

猫名_searched.txt | awk -F"n" '{打印长度($0) - 长度($NF)}' > namex_srch_idx.txt

结果如下:

12
11
11
3

现在我粘贴文件以准备结果文件,即

粘贴 names_searched.txt namex_srch_idx.txt > names_result.txt

以下是期望的结果:

塔伦特雷汉 12
allzhere 安卓应用程序 11
facebook 11 上的 allzhere
联系更新实用程序 3

是否有一种解决方法,我们不需要创建临时文件并仍然获得相同的结果?

4

1 回答 1

3

您可以使用这一awk衬里:

awk -F"n" '{ len=length($0) - length($NF); if( len > 0 ) print $0,len }'  names_file.txt > names_result.txt

fedorquiawk提到的另一个一一班轮,

awk -F"n" 'NF>1{print $0, length($0) - length($NF)}' names_file.txt > names_result.txt
于 2013-10-28T12:30:50.983 回答