我有这个问题。
我需要从文本文件中提取一些单词,这些单词是通过该文本中的特定模式找到的。例如:
/this/is/path:
file1.txt,date-3
file2.txt,date-2
/this/is/path2:
file.txt,date-1
file2.txt,date-5
模式将是/path:
和,并且只能选择之后和之后的行/path:
。因为可能有相同的文件名。我需要找到确切的file.txt
并采取这三件事:
分为3个变量。
示例:我有以下格式的文本文档:
/ home / name / Documents: file.txt,12.5.2014-1 file2.txt,15.8.2014-2 / home / name / Music: file.txt,15.4.2014-2 f2ile3.txt,8.2.2015-5 file2.txt,7.6.2014-3 / home / name / Video: file.txt,date-5
还有目录音乐和具有相同文件的文档,我只想从音乐中选择file.txt。但是,当它查找file.txt时,也会在目录Documents中找到一个,因此我只想在目录音乐中选择一个,它将在Video目录中结束。当找到file.txt时,它将像这样保存:1.variable = file.txt,2.variable = 15.4.2014,3.variable = 2。
使用Awk:
awk -F'[,-]' '
/Music/ {f=1}
/^$/ {f=0} f && /file\.txt/ \
{printf "%s\n%s\n%s\n", "var1="$1,"var2="$2,"var3="$3}
' file
var1=file.txt
var2=15.4.2014
var3=2
...假设实际上,您的块之间有空行(按照第一个示例)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句