我有一个包含以下内容的文本文件:
toto.titi.any=val1
toto.tata.any=val2
toto.tete.any=val2
如何从此文件中提取titi
、tata
和tete
。
应该是这样的事情
$ cat myfile.txt | sed '......'
并且输出应该是
titi
tata
tete
你真的需要sed
吗? 您可以使用cut
:
cut -d. -f2 filename
使用 awk,您可以执行以下操作:
awk -F. '{print $2}' file
awk/cut 将是这个问题的更好选择。
以下是 SED 行和 grep 选项:
sed -r 's/.*.([^.]*)..*/1/'
grep -Po '.K[^.]*(?=.)'
awk
和cut
最适合此
您还可以逐行读取文件,并打印出所需的部分。
$ IFS=.
$ while read first interested others ; do echo $interested; done < file
titi
tata
tete
sed -n 's/^[^.]*.([^.]*)..*/1/p' myfile.txt
显示内部至少有 2 个点的行之间的第二个值