如何从一行文本中选择一个给定的列?

时间:2010-10-19 06:40:49

标签: unix shell sh

假设我有这句话:

My name is bob.

我想把那句话中的“是”一词复制成一个变量。如果事先不知道我要找的那个词,我怎么才能访问这个词?如果我知道特定的单词或字符串位于五列文本行的第三列文本中,我该如何在第三列中使用该单词?

我正在使用bourne shell。

3 个答案:

答案 0 :(得分:17)

word=$(cut -d ' ' -f 3 filename)

cut为我们提供了每一行的第三个字段(在本例中为1)。 -d用于将空间指定为分隔符。 $()捕获输出,然后我们将其分配给word变量。

答案 1 :(得分:8)

您可以使用cutawk

示例:

awk '{print $3}' my_file.txt

答案 2 :(得分:0)

sentence='My name is bob.'
set -- $sentence
echo $3

sentence='My name is bob.'
set -- $sentence
shift 2    # or use a variable
echo $1