Quero imprimir o comum do arquivo 2
Um arquivo contém o ls -l
opção e o outro tem o ls
opção
ls
só tem o nome do arquivo ls -l
tem tudo, incluindo a permissão e outras informações.
Existe uma maneira de eles imprimirem a saída do arquivo comum? O comando comm não parece funcionar (imprime tudo)
eu tentei grep -f file1 file2
mas nada aparece
vamos dizer o ls -l
saída é
-rwx------ 1 username 230 date and the filename
ls
é
filname
Eu estou tentando obter o nome do arquivo aka a união do arquivo 2. Eu não acho que há uma maneira de ler o diretório do nome do arquivo no shell
eu quero o
filename
Respostas:
Isso faz um loop em cada linha
ls-file
(contendo apenas o comando ls) e atribui a saída para $ i. Em seguida, elels-l-file
(contendo o comando ls -l) e procura por uma correspondência e gera a saída.Atualizar
O parâmetro -o só mostrará o texto correspondente, então apenas o nome do arquivo
Atualização 2
Isso funciona melhor.
fonte
Você é parte do caminho até lá.
A primeira coisa que você precisa é extrair apenas os nomes de arquivo do arquivo que contém
ls -l
saída, você pode fazer isso comNo meu sistema operacional, o nome do arquivo é a 9ª coluna, é possível que seja uma coluna diferente na sua.
Observe que
comm
requer que ambos os arquivos sejam classificados, isso já deve ser o caso com a saída dels
els -l
.Portanto, o seu one-liner seria:
O argumento de traço único para comm diz para usar STDIN.
Suposição importante : isso pressupõe que seus nomes de arquivos não possuam espaços neles.
fonte