Procura e edita documentos de texto e atribui a variável no terminal Mac

0

Então, se eu salvar system_profile em um documento de texto, como poderei excluir todas as seções, exceto uma? Ou excluir citações em torno dele? Então, como atribuir um determinado texto a uma variável para verificar certas coisas?

Exemplo: Se eu salvar system_profile em um documento de texto, como eu procuraria para descobrir quanto eu tenho e atribuo isso à variável 'ram'? Além disso, posso procurar e excluir determinados caracteres? Por exemplo, um script exclui todas as aspas?

    
por JShoe 22.05.2011 / 05:36

2 respostas

0

Você pode pesquisar palavras em um arquivo usando o grep.

Exemplo:

cat system_profile | grep ram

Isso retornará a linha em system_profile que contém o padrão "ram". Você provavelmente precisará executar o comando e examinar o retorno antes de desenvolver uma compreensão do que fazer a seguir. Se tudo que você quer é uma parte do arquivo, você pode realizar uma pesquisa e redirecionar sua saída para um novo arquivo.

Exemplo:

cat system_profile | grep ram -A 5 > system_ram

Isso lhe dará a linha que contém "ram" e as cinco linhas depois dela.

Você pode substituir caracteres através do utilitário sed.

Exemplo:

sed -i 's/old/new/g' system_profile

Para eliminar aspas duplas ("):

sed -i 's/"//g' system_profile
    
por 22.05.2011 / 06:02
0

Não sei bem como selecionar entre diferentes ocorrências, mas espero que isso ajude.

x=$(cat system_profile | grep ram -A 5)

O código acima salvará a linha que contém a ram e as próximas 5 linhas depois dela. Para obter linhas antes, use -a em vez de -A .

Eu acho que grep suporta a seleção de um número limitado de linhas (ou seja, parar após a primeira ocorrência de ram ). Se é isso que você está procurando, use a opção -m 1 (onde um é o número de ocorrências para localizar antes de parar) para o grep.

Como alternativa, você pode modificar sua pesquisa grep se as duas (ou mais) linhas selecionadas não forem idênticas. Basta alterar ram para o que você precisa corresponder (colocar entre aspas se for mais de uma palavra)

    
por 22.05.2011 / 06:19