所以我试图在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)
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会赢得读取每一行.