![从一行中提取一个单词,对特定数量的行执行此操作](https://linux22.com/image/6217/%E4%BB%8E%E4%B8%80%E8%A1%8C%E4%B8%AD%E6%8F%90%E5%8F%96%E4%B8%80%E4%B8%AA%E5%8D%95%E8%AF%8D%EF%BC%8C%E5%AF%B9%E7%89%B9%E5%AE%9A%E6%95%B0%E9%87%8F%E7%9A%84%E8%A1%8C%E6%89%A7%E8%A1%8C%E6%AD%A4%E6%93%8D%E4%BD%9C.png)
我想从一行中提取一个单词,对特定数量的行执行此操作。
我有这样的东西。
1. Bill
2. Joe 1
3. Sue 1
我想分别提取“Bill”、“Joe”和“Sue”这三个词。我正在尝试使用该sed
命令,但没有成功。
答案1
只需用于cut
提取以空格分隔的第二个字段:
cut -d' ' -f2 file.txt
例子:
$ cat file.txt
1. Bill
2. Joe 1
3. Sue 1
$ cut -d' ' -f2 file.txt
Bill
Joe
Sue
答案2
您可以用于awk
此目的。只需选择并打印第二个字段。
awk '{ print $2 }'
答案3
如果你只有这三行就可以sed 's/[0-9. ]//g' filename
完成这项工作。
选择一行,sed -e '2!d' -e 's/[0-9. ]//g' filename
这只是给你Joe
作为输出。