Skip to main content
AI Assist is now on Stack Overflow. Start a chat to get instant answers from across the network. Sign up to save and share your chats.
Fixing commands
Source Link
Ali
  • 1.6k
  • 1
  • 18
  • 32

you can use these:

  1. On all shells:
    docker logs nginx 2>&1 | grep "127." 
  2. Only on newer versions of bash works:
    docker logs nginx &> | &> grep "127.""127" 

What is this syntax?

  • Standard input (0)
  • Standard output (1)
  • Standard error (2)

The > operator actually defaults to using 1 as the file descriptor number, which is why we don't need to specify 1> to redirect standard output: (date 1> now.txt = date > now.txt)

all together

We can redirect multiple streams at once! In this example, we are concatenating two files, redirecting standard output to a file called insects.txt, and redirecting standard error to a file called error.txt.

cat bees.txt ants.txt > insects.txt 2> error.txt 
getting fancy

If we wanted to redirect both standard output and standard error to the same file, we could do ls docs > output.txt 2> output.txt

Or we could instead use 2>&1 which is a fancy syntax for saying "redirect standard error to the same location as standard output.

ls docs > output.txt 2>&1 
getting fancier

Newer versions of bash also support a fancier syntax for redirecting both standard output and standard error to the same file: the &> notation

ls docs &> output.txt 

you can use these:

  1. On all shells:
    docker logs nginx 2>&1 | grep "127." 
  2. Only on newer versions of bash works:
    docker logs nginx &> | grep "127." 

What is this syntax?

  • Standard input (0)
  • Standard output (1)
  • Standard error (2)

The > operator actually defaults to using 1 as the file descriptor number, which is why we don't need to specify 1> to redirect standard output: (date 1> now.txt = date > now.txt)

all together

We can redirect multiple streams at once! In this example, we are concatenating two files, redirecting standard output to a file called insects.txt, and redirecting standard error to a file called error.txt.

cat bees.txt ants.txt > insects.txt 2> error.txt 
getting fancy

If we wanted to redirect both standard output and standard error to the same file, we could do ls docs > output.txt 2> output.txt

Or we could instead use 2>&1 which is a fancy syntax for saying "redirect standard error to the same location as standard output.

ls docs > output.txt 2>&1 
getting fancier

Newer versions of bash also support a fancier syntax for redirecting both standard output and standard error to the same file: the &> notation

ls docs &> output.txt 

you can use these:

  1. On all shells:
    docker logs nginx 2>&1 | grep "127." 
  2. Only on newer versions of bash works:
    docker logs nginx | &> grep "127" 

What is this syntax?

  • Standard input (0)
  • Standard output (1)
  • Standard error (2)

The > operator actually defaults to using 1 as the file descriptor number, which is why we don't need to specify 1> to redirect standard output: (date 1> now.txt = date > now.txt)

all together

We can redirect multiple streams at once! In this example, we are concatenating two files, redirecting standard output to a file called insects.txt, and redirecting standard error to a file called error.txt.

cat bees.txt ants.txt > insects.txt 2> error.txt 
getting fancy

If we wanted to redirect both standard output and standard error to the same file, we could do ls docs > output.txt 2> output.txt

Or we could instead use 2>&1 which is a fancy syntax for saying "redirect standard error to the same location as standard output.

ls docs > output.txt 2>&1 
getting fancier

Newer versions of bash also support a fancier syntax for redirecting both standard output and standard error to the same file: the &> notation

ls docs &> output.txt 
Source Link
Ali
  • 1.6k
  • 1
  • 18
  • 32

you can use these:

  1. On all shells:
    docker logs nginx 2>&1 | grep "127." 
  2. Only on newer versions of bash works:
    docker logs nginx &> | grep "127." 

What is this syntax?

  • Standard input (0)
  • Standard output (1)
  • Standard error (2)

The > operator actually defaults to using 1 as the file descriptor number, which is why we don't need to specify 1> to redirect standard output: (date 1> now.txt = date > now.txt)

all together

We can redirect multiple streams at once! In this example, we are concatenating two files, redirecting standard output to a file called insects.txt, and redirecting standard error to a file called error.txt.

cat bees.txt ants.txt > insects.txt 2> error.txt 
getting fancy

If we wanted to redirect both standard output and standard error to the same file, we could do ls docs > output.txt 2> output.txt

Or we could instead use 2>&1 which is a fancy syntax for saying "redirect standard error to the same location as standard output.

ls docs > output.txt 2>&1 
getting fancier

Newer versions of bash also support a fancier syntax for redirecting both standard output and standard error to the same file: the &> notation

ls docs &> output.txt