所以我试图打印 txt 文件的每一行中的第一个单词。单词之间用一个空格隔开。
cut -c 1 txt file
这就是我到目前为止的代码,但它只打印每行的第一个字符。谢谢
要打印整个单词,您需要-f 1
,而不是-c 1
. 并且由于默认字段分隔符是 TAB 而不是 SPACE,因此您需要使用该-d
选项。
cut -d' ' -f1 filename
要打印 AFAIK 无法打印的最后两个单词cut
,因为它只能从行首开始计数。改用awk
:
awk '{print $(NF-1), $NF;}' filename
你可以试试
awk '{print $1}' your_file
read word _ < file
echo "$word"
这个解决方案的好处是它不会超出文件的第一行。即使是 awk,它有一些非常干净、简洁的语法,也必须被明确告知停止阅读超过第一行的内容。read
一次只读一行。另外,它是一个 bash 内置程序(以及许多 shell 中的内置程序),因此您不需要运行新进程。
如果要打印每行的第一个单词:
while read word _; do printf '%s\n' "$word"; done < file
但是如果文件很大,那么 awk 或 cut 将在读取每一行时胜出。
您可以使用:
cut -d\ -f1 file
在哪里:
\
用于空格)注意space
后面有一个\
。
-c
用于字符,您希望-f
用于字段,并-d
指示您的空格分隔符而不是默认选项卡:
cut -d " " -f 1 file