在循环中用冒号分隔行读取文件

时间:2018-04-13 19:34:48

标签: bash

我正在尝试使用bash脚本分隔ip和端口。以下是我的内容

my proxies.txt文件

48.54.87.45:1000
48.54.87.45:1001
48.54.87.45:1002

我的bash脚本

#!/bin/sh
input="proxies.txt"
while IFS= read -r var
do
  echo "$var"
  IFS=':' read proxy port <<< "$var"
  echo "$proxy"
  echo "$port"
  echo "---------------"
done < "$input"

但是我收到以下错误

语法错误:重定向意外

我测试了循环,它确实逐个读取文件。它是给出错误的IFS行。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

public class Main { public static void main(String[] args) { /** * Read in "./Root/files/echo.csv" und "./Root/files/file1.csv" * and output the correspondent warning on System.out */ String file1 = new String(""); String echo = ""; file1 = CSVReader("./Root/files/file1.csv"); /*cannot find symbol */ echo = CSVReader("./Root/files/echo.csv"); // same error } } 是仅限bash的语法。如果您尝试在运行<<<的脚本(使用/bin/sh shebang或使用#!/bin/sh运行)中使用它,则会导致此错误。

使用sh scriptname实际调用bash 的其他shebang启动您的脚本。