logo

Bash-leesbestand

Er zijn veel manieren waarop we een bestand kunnen lezen in Bash Shell Scripting. Enkele van de belangrijke methoden worden hieronder gegeven (ervan uitgaande dat de naam van het bestand dat we lezen 'read_file.txt' is):

Bestand lezen met 'cat bestandsnaam'

We kunnen de volgende syntaxis gebruiken om een ​​afdruk van de inhoud van het bestand naar een terminal te brengen.

 value=`cat file_name` 

Voorbeeld

 #!/bin/bash value=`cat read_file.txt` echo '$value' 

Uitvoer

Bash-leesbestand

Bestand lezen met '$()

Hieronder volgt de syntaxis om de inhoud van het bestand te lezen met '$'

 value=$(file_name) 

Voorbeeld

 #!/bin/bash value=$(<read_file.txt) echo '$value' < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/66/bash-read-file-2.webp" alt="Bash Read File"> <h3>Reading File Content from Command-line</h3> <p>If we want to read a file line by line from commands-line without using the &apos;cat&apos; command, we can run the following command to perform a task:</p> <p> <strong>Command</strong> </p> <pre> while read line; do Command; done <input.file < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/66/bash-read-file-3.webp" alt="Bash Read File"> <p>Here, while loop will reach each line of the file and store the content of the line in $line variable which will be printed later.</p> <h3>Reading File Content Using Script</h3> <p>To read the file content using the script, we need to create a bash file and add the following code:</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash file=&apos;read_file.txt&apos; i=1 while read line; do #Reading each line echo &apos;Line No. $i : $line&apos; i=$((i+1)) done <$file < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/66/bash-read-file-4.webp" alt="Bash Read File"> <p>Here, an existing filename is stored in $file variable, and $i variable is used to keep the value of the line number of that line.</p> <h3>Passing filename from Command line and reading the File</h3> <p>Create a bash and add the following script which will pass filename from the command line and read the file line by line. The first argument value is read by the variable $1, which will include the filename for reading. If the file is available in the specified location then while loop will read the file line by line and print the file content.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash file=$1 while read line; do #Readind each line in sequence echo $line done <read_file.txt < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/66/bash-read-file-5.webp" alt="Bash Read File"> <p>Here, the filename is used as an argument value. The output will provide the content of &apos;read_file.txt&apos; with no extra spaces between words.</p> <h3>Reading file by omitting Backslash Escape</h3> <p>If we want to read each line of a file line by line by omitting backslash-escape then we are required to use the &apos;-r&apos; option with a &apos;read&apos; command in &apos;while&apos; loop, e.g.:</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash while read -r line; do #Reading each line by omitting backslash escape echo $line done <read_file.txt < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/66/bash-read-file-6.webp" alt="Bash Read File"> <p>We may require reading the file for several programming purposes. For example, we can search or match any specific content easily from the file line by line. Hence, it is a useful task for any programming language.</p> <hr></read_file.txt></pre></read_file.txt></pre></$file></pre></input.file></pre></read_file.txt)>