C-shell 循环读取csv文件
时间: 2023-09-15 10:15:19 浏览: 121
可以使用 C-shell 的 while 循环结合 awk 命令来读取 csv 文件。下面是一个示例代码:
```csh
#!/bin/csh
set filename = "data.csv"
while (1)
set line = `awk 'BEGIN{FS=","} NR==FNR{next} {print}' $filename`
if ("$line" == "") then
break
endif
echo $line
end
```
在这个示例中,我们首先设置了一个文件名变量 filename,然后使用 while 循环来不断读取文件中的行。在每次循环中,我们使用 awk 命令来读取文件中的一行,并将其保存到变量 line 中。注意,我们使用了 awk 中的 BEGIN{FS=","} 选项来设置分隔符为逗号。
接着,我们检查变量 line 是否为空。如果为空,说明文件已经读取完毕,我们就跳出循环。否则,我们使用 echo 命令将读取到的行输出到屏幕上。
你可以根据自己的需要修改代码来适应不同的 csv 文件格式和数据处理需求。
相关问题
shell分别循环读取csv文件中第二列和第三列内容
可以使用`awk`命令来实现循环读取csv文件中第二列和第三列的内容。假设csv文件名为`file.csv`,可以使用以下命令:
```shell
#!/bin/bash
while IFS=',' read col1 col2 col3
do
echo "Column 2: $col2"
echo "Column 3: $col3"
done < file.csv
```
其中`IFS=','`指定了分隔符为逗号,`read col1 col2 col3`将每行内容分别读取到变量`col1`、`col2`和`col3`中,然后在循环体中使用这些变量来操作第二列和第三列的内容。
shell脚本编写循环读取csv文件中的每一行 读取完成后继续从头开始
可以使用 while 循环来读取 csv 文件中的每一行,示例代码如下:
```bash
#!/bin/bash
while read line
do
# 在此处处理每一行数据
done < file.csv
```
其中,`file.csv` 是要读取的 csv 文件名,`read line` 用来读取文件中的一行数据,并将其保存到变量 `line` 中。在循环体中,可以使用 `line` 变量来对每一行数据进行处理。当所有行都读取完毕后,循环会自动结束并退出。
另外,如果需要循环读取,可以将循环体放入一个无限循环中:
```bash
#!/bin/bash
while true
do
while read line
do
# 在此处处理每一行数据
done < file.csv
done
```
这样,当所有行被读取完毕后,循环会跳回到开始处,重新开始读取文件中的每一行数据。
阅读全文