我想弄清楚为什么文件名的一部分消失了。
就我而言,我创建了三个文件
$ ls
some-part-of-file.1 some-part-of-file.2 some-part-of-file.3
Run Code Online (Sandbox Code Playgroud)
当我使用 awk with 时FS = "-"
,其中一个是空白的。
$ ( echo some-part-of-file.1 ; echo some-part-of-file.2 ; echo some-part-of-file.3 ) | awk '{ FS = "-" ; print $0 " " $2}'
some-part-of-file.1
some-part-of-file.2 part
some-part-of-file.3 part
Run Code Online (Sandbox Code Playgroud)
为什么不像其他人some-part-of-file.1
$2
那样打印part
?
man*_*ork 11
您将获得第一条记录的空白输出,因为在您设置FS
.
您必须在读取和解析输入记录之前设置字段分隔符。所以要么
awk 'BEGIN{ FS = "-" }{print $2}'
Run Code Online (Sandbox Code Playgroud)
或者
awk -F'-' '{print $2}'
Run Code Online (Sandbox Code Playgroud)
或者,您可以awk
在设置后强制重新解析当前记录FS
:
awk '{FS = "-"; $0 = $0; print $2}'
Run Code Online (Sandbox Code Playgroud)
关于你的管道,grep
不需要,awk
也可以做这部分:
ls | awk -F'-' '/some-part-of-file/{print $2}'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1454 次 |
最近记录: |