我有一个命令:
ls -l | nawk -v d1=Sep -v d2=26 '{if(match($0,d1)) print $0}'
-rw-rw-r-- 1 nobody nobody 12 Sep 26 11:36 file1
-rw-rw-r-- 1 nobody nobody 14 Sep 26 11:37 file2
-rw-rw-r-- 1 nobody nobody 0 Sep 26 10:46 file3
-rw-rw-r-- 1 nobody nobody 0 Sep 26 10:44 file4
-rw-rw-r-- 1 nobody nobody 0 Sep 26 10:50 file5
-rw-rw-r-- 1 nobody nobody 0 Sep 26 11:00 file6
-rw-rw-r-- 1 nobody nobody 0 Sep 25 11:00 file7
-rw-rw-r-- 1 nobody nobody 0 Sep 26 14:22 ksh
-rwxrwxr-x 1 nobody nobody 208 Sep 26 16:31 test.sh*
-rwxrwxr-x 1 nobody nobody 62 Sep 26 15:15 test2.sh*
但是当我使用以下内容时:
ls -l | nawk -v d1=Sep -v d2=26 '{if(match($0,d1 d2)) print $0}'
它没有给我任何输出!!
正如您所看到的,在9月到26日之间有一个空格,我在正则表达式中使用相同的空格来匹配字符串“Sep 26”。 你能帮忙吗?
我期待输出为:
-rw-rw-r-- 1 nobody nobody 12 Sep 26 11:36 file1
-rw-rw-r-- 1 nobody nobody 14 Sep 26 11:37 file2
-rw-rw-r-- 1 nobody nobody 0 Sep 26 10:46 file3
-rw-rw-r-- 1 nobody nobody 0 Sep 26 10:44 file4
-rw-rw-r-- 1 nobody nobody 0 Sep 26 10:50 file5
-rw-rw-r-- 1 nobody nobody 0 Sep 26 11:00 file6
-rw-rw-r-- 1 nobody nobody 0 Sep 26 14:22 ksh
-rwxrwxr-x 1 nobody nobody 208 Sep 26 16:31 test.sh*
-rwxrwxr-x 1 nobody nobody 62 Sep 26 15:15 test2.sh*
答案 0 :(得分:0)
假设用户名和组名不包含空格,这是执行此操作的Awk方法:
ls -l | nawk -v d1=Sep -v d2=26 '{if(match($6, d1) && match($7, d2)) print $0}'
# NOTE ----^^ ----^^
答案 1 :(得分:0)
kent$ echo "-rw-rw-r-- 1 nobody nobody 12 Sep 26 11:36 file1
-rw-rw-r-- 1 nobody nobody 14 Sep 26 11:37 file2
-rw-rw-r-- 1 nobody nobody 0 Sep 26 10:46 file3
-rw-rw-r-- 1 nobody nobody 0 Sep 26 10:44 file4
-rw-rw-r-- 1 nobody nobody 0 Sep 26 10:50 file5
-rw-rw-r-- 1 nobody nobody 0 Sep 26 11:00 file6
-rw-rw-r-- 1 nobody nobody 0 Sep 25 11:00 file7
-rw-rw-r-- 1 nobody nobody 0 Sep 26 14:22 ksh
-rwxrwxr-x 1 nobody nobody 208 Sep 26 16:31 test.sh*
-rwxrwxr-x 1 nobody nobody 62 Sep 26 15:15 test2.sh*
"|awk -v d1=Sep -v d2=26 'BEGIN{x=d1" "d2}{ if(match($0,x))print $0;}'
-rw-rw-r-- 1 nobody nobody 12 Sep 26 11:36 file1
-rw-rw-r-- 1 nobody nobody 14 Sep 26 11:37 file2
-rw-rw-r-- 1 nobody nobody 0 Sep 26 10:46 file3
-rw-rw-r-- 1 nobody nobody 0 Sep 26 10:44 file4
-rw-rw-r-- 1 nobody nobody 0 Sep 26 10:50 file5
-rw-rw-r-- 1 nobody nobody 0 Sep 26 11:00 file6
-rw-rw-r-- 1 nobody nobody 0 Sep 26 14:22 ksh
-rwxrwxr-x 1 nobody nobody 208 Sep 26 16:31 test.sh*
-rwxrwxr-x 1 nobody nobody 62 Sep 26 15:15 test2.sh*