Bash脚本来读取文件

hfr*_*nco 3 linux bash

不知道为什么最后一行没有削减"从脚本:

#!/bin/bash

FILENAME=$1
while read line
do
cut -d '"' -f2
echo $line
done < $FILENAME

$ cat file

"1" test
"2" test
"3" test
"4" test
"5" test
Run Code Online (Sandbox Code Playgroud)

如果我使用以下命令运行此脚本:

$ ./test file

2
3
4
5
"1" test
Run Code Online (Sandbox Code Playgroud)

Jon*_*ler 7

循环执行一次.

  • 它读"1" test入变量$line.
  • 它执行cut -d '"' -f2读取文件的第2-5行(因为那是当时的标准输入)并打印该数字.
  • 它与第一行的内容相呼应.

固定:

cut -d '"' -f2 $FILENAME
Run Code Online (Sandbox Code Playgroud)

另一方面,如果您希望将数字转换为变量,则可以通过多种方式执行此操作,包括:

cut -d '"' -f2 $FILENAME |
while read number
do  # What you want
    echo $number
done
Run Code Online (Sandbox Code Playgroud)

要么:

while read line
do
    number=$(echo "$line" | cut -d '"' -f2)
    echo $number
done
Run Code Online (Sandbox Code Playgroud)