Как выполнить команду ls на выходе из поля awk - PullRequest
2 голосов
/ 03 мая 2011

В качестве параметра используется каталог:

#!/bin/bash

ls -l $1 |awk '$3!=$4{print $9}' 

Теперь мне нужно иметь возможность ДРУГОЙ ls -l использовать только те файлы, которые находятся в выражении awk.

Да, это звучит глупо, и я знаю примерно 3 других способа сделать это, но не с помощью awk.

Ответы [ 4 ]

2 голосов
/ 03 мая 2011

Использовать системную команду awk:

ls -l $1 |awk '$3!=$4{system("ls -l " $9)}'
1 голос
/ 03 мая 2011

Используемая команда: xargs.

man xargs

должен дать некоторые подсказки.

0 голосов
/ 03 мая 2011

Если разрешено настраивать первые ls -l, вы можете попытаться сделать:

ls -ld "$1"/* |awk '$3!=$4{print $9}' | xargs ls -l

В этом случае ls будет префиксом каталога.Но я не знаю, переносимо ли это поведение.

0 голосов
/ 03 мая 2011

#!/bin/bash

ls -l $1 | awk '$3!=$4{ system( "ls -l '$1'/" $9}' 
...