我正在使用以下命令来获取文件的第一个字
awk '{print $1}' myFile
但它正在打印所有行的第一个单词
答案1
awk
将在每一行上运行命令(除了BEGIN
/END
块等)。因此...处理完第一行后退出:
awk '{print $1; exit}' /some/file
或者仅包含第一行:
awk 'FNR == 1 {print $1}' /some/file #still runs the test on all lines
答案2
您可以使用sed
:
sed -nr '1s/^([^ ]+).*/\1/p' file.txt
1
替换模式开头的 表示我们只处理文件的第一行[^ ]+
将找到第一个空格分隔的单词,我们将其放入一个组中,以便稍后在替换模式中引用它s/^([^ ]+).*/\1/
将仅用第一个单词替换第一行
答案3
awk
没有或的不同方法sed
:
tr ' ' '\n' < file.txt | head -n1