打印txt文件unix bash的每一行中的第一个单词

ap1*_*993 20 unix bash file

所以我试图在txt文件的每一行打印第一个单词.单词用一个空格分隔.

cut -c 1 txt file 
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止的代码,但它只打印每行的第一个字符.谢谢

Bar*_*mar 29

要打印整个单词,你想要的-f 1不是-c 1.由于默认字段分隔符是TAB而不是SPACE,因此您需要使用该-d选项.

cut -d' ' -f1 filename
Run Code Online (Sandbox Code Playgroud)

cutAFAIK 打印最后两个不可能的单词,因为它只能从行的开头算起.awk改为使用:

awk '{print $(NF-1), $NF;}' filename
Run Code Online (Sandbox Code Playgroud)


CS *_*Pei 23

你可以试试

awk '{print $1}' your_file
Run Code Online (Sandbox Code Playgroud)


koj*_*iro 10

read word _ < file
echo "$word"
Run Code Online (Sandbox Code Playgroud)

这个解决方案有什么好处,它不会超出文件的第一行.即使是具有一些非常干净,简洁的语法的awk,也必须被明确告知要停止阅读第一行.read只读一行一行.另外,它是一个内置的bash(以及内置于许多shell中),因此您不需要运行新进程.

如果要打印每行中的第一个单词:

while read word _; do printf '%s\n' "$word"; done < file
Run Code Online (Sandbox Code Playgroud)

但是如果文件很大,那么awk或cut会赢得读取每一行.