我想阅读文件的第二行:
$(sed -n 2p $file)
这非常有效,但我想在第一个空格之前阅读 这一行。 任何想法如何做到这一点?
答案 0 :(得分:2)
这个怎么样:
$ sed -n 2p $file | cut -d " " -f1
答案 1 :(得分:1)
你可能想尝试这样的事情:
$(sed -n '2s/ .*//p' $file)
它就像你的,除了s
命令用空格替换空格及其后的任何内容(.*
),即删除其余部分。
答案 2 :(得分:0)
你可以这样做来分割一个数组中的行,然后一次读一个单词。
while IFS=" " read -a word; do # storing the line separated by space in an array
echo "${word[0]}"; # calling the first array element which is indexed at 0
done < <(head -n 2 file | tail -n 1) # process substitution of fetching only second line
<强>测试强>
[jaypal:~/Temp] cat file
a 212
b 323
c 23
d 45
e 54
f 102
[jaypal:~/Temp] while IFS=" " read -a word; do
echo "${word[0]}";
done < <(head -n 2 file | tail -n 1)
b
或者,如果你只想要一个单行的快速解决方案,那么以下工作就可以了 -
awk 'NR==2{print $1}' filename
<强>测试强>
[jaypal:~/Temp] awk 'NR==2{print $1}' file
b