我目前需要在文本文件的一行中提取第二个单词(CRISTOBAL)。
* CRISTOBAL AL042014 08/05/14 12 UTC *
“CRISTOBAL”行中的第二个单词每天都会有所不同,所以我只需要找到一种从行中提取第二个单词/字符的方法。
答案 0 :(得分:13)
第二个字
echo '* CRISTOBAL AL042014 08/05/14 12 UTC *' | awk '{print $2}'
会给你CRISTOBAL
echo 'testing only' | awk '{print $2}'
会给你only
如果线条的结构发生变化,您可能需要修改此项。
文本文件中第2行的单词
如果您的文本文件包含以下两个句子
this is a test
* CRISTOBAL AL042014 08/05/14 12 UTC *
正在运行awk '{print $2}' filename.txt
将返回
is
CRISTOBAL
第二个字符
echo 'testing only' | cut -c 2
这将为您提供e
,这是第二个字符,您可能需要修改它以满足您的需求。
答案 1 :(得分:1)
如果需要/只能使用sed
sed '^ *[^ ]* *\([^ ]*\) .*/\1/' YourFile
取第二个非空白组(假设
一词后至少有一个空白但我更喜欢削减速度(如果需要任何操作,则选择awk)。
实际上它主要依赖于脚本中的下一个动作(如果有的话)。
答案 2 :(得分:-1)
我知道它很旧,但是@NeronLeVelu 没有我需要的管道。
ip link show wlan0 | grep 'link'| sed 's/^ *[^ ]* *\([^ ]*\) .*/\1/'
是我用来提取 MAC 地址的。由于其他原因,我无法使用 awk。