File type = "ooTextFile"
Object class = "TextGrid"
xmin = 0
xmax = 82.7959410430839
tiers? <exists>
size = 1
item []:
item [1]:
class = "IntervalTier"
name = "ortho"
xmin = 0
xmax = 82.7959410430839
intervals: size = 6
intervals [1]:a
xmin = 0
xmax = 15.393970521541949
text = "Aj tento rok organizuje Rádio Sud piva. Kto chce súťažiť, nemusí sa nikde registrovať.
intervals [2]:
xmin = 15.393970521541949
xmax = 27.58997052154195
.
.
.
您好我正在处理数百个这样的文本文件
我想要从此文本文件中过滤所有值xmin=...
,但只能从16th
行过滤,因为在开始时有xmins
,这些都是无用的,如您所见。
我试过了:
cat text.txt | grep xmin
但它显示xmin
所在的所有行。
请帮帮我。我无法修改文本文件,因为我需要处理数百个文件,所以我必须设计合适的方法来过滤它们。
答案 0 :(得分:1)
像这样:
awk 'FNR>15 && /xmin/' file*
xmin = 0
xmin = 15.393970521541949
它会显示行xmin
16
您还可以打印找到的xmin
awk 'FNR>15 && /xmin/ {$1=$1;print FILENAME" -> "$0}' file*
file22 -> xmin = 0
file22 -> xmin = 15.393970521541949
更新:需要FNR
才能使用多个文件。
答案 1 :(得分:0)
使用sed
和grep
查找&#34; xmin&#34;从第16行到单个文件的结尾:
sed -n '16,$p' foobar.txt | grep "xmin"
如果有多个文件,这里有一个bash
脚本来获取输出:
#!/bin/bash
for file in "$1"/*; do
output=$(sed -n '16,$p' "$file" | grep "xmin")
if [[ -n $output ]]; then
echo -e "$file has follwoing entries:\n$output"; fi; done
将脚本作为bash script.sh /directory/containing/the/files/to/be/searched