linux awk:行1:打印处或打印附近的语法错误[已关闭]

w8ntj3qf  于 2023-01-12  发布在  Linux
关注(0)|答案(1)|浏览(176)

我们不允许问题寻求有关书籍、工具、软件库等的推荐。你可以编辑问题,以便可以使用事实和引用来回答问题。
21小时前关门了。
Improve this question
我是新来的,这是我的第一个问题
我刚刚开始学习shell脚本,面临着一个问题。我有什么是我创建的文件如下:
ls -lrt *.txt > filenames
内容如下:

-rwxr-xr-x 1 root root  206 Jan 10 21:00 urls.txt
-rwxr-xr-x 1 root root 1083 Jan 10 21:27 google.txt
-rwxr-xr-x 1 root root  648 Jan 10 21:27 udemy.txt
-rwxr-xr-x 1 root root  373 Jan 10 21:27 gmail.txt
-rwxr-xr-x 1 root root  200 Jan 10 21:27 facebook.txt
-rwxr-xr-x 1 root root  348 Jan 10 21:27 twitter.txt
-rwxr-xr-x 1 root root 1117 Jan 10 21:27 yahoo.txt
-rwxr-xr-x 1 root root  377 Jan 10 21:27 youtube.txt
-rwxr-xr-x 1 root root  201 Jan 10 21:27 wikipedia.txt
-rwxr-xr-x 1 root root  397 Jan 10 21:27 amazon.txt
-rwxr-xr-x 1 root root  816 Jan 10 21:27 netflix.txt
-rwxr-xr-x 1 root root  201 Jan 10 21:27 instagram.txt
-rwxr-xr-x 1 root root   88 Jan 10 21:27 ubuntu.txt
-rwxr-xr-x 1 root root  378 Jan 10 21:28 microsoft.txt

我想要的是使用awk命令提取filenames列。

awk 'print { $11 }' filenames

我得到以下错误:

awk: line 1: syntax error at or near print

我不知道我做错了什么,我甚至在互联网上查找语法交叉检查,但无济于事。
我期望命令打印出第11列,如下所示:

urls.txt
google.txt
udemy.txt
gmail.txt
facebook.txt
twitter.txt
yahoo.txt
youtube.txt
wikipedia.txt
amazon.txt
netflix.txt
instagram.txt
ubuntu.txt
microsoft.txt
nzk0hqpo

nzk0hqpo1#

ls -rt *.txt > filenames就可以了。如果您需要awk命令,它是

awk '{print $NF}' filenames

$NF是awk中的最后一个字段,不需要计算列数。$(NF-1)将是倒数第二列。

相关问题