请编写一个处理以空格为分隔符的表格的shell脚本,表格有n行6列,脚本的功能是替换表格第6列的值,第6列的替换值由第2列的倒数第3个字符决定,如果第2列的倒数第3个字符为p,则第6列的值为1,否则则为6,注意,处理时不区分表头和值
时间: 2024-02-29 08:53:04 浏览: 58
处理Shell脚本中带有空格的变量(bash脚本)
好的,根据您的要求,我编写了以下shell脚本:
```bash
#!/bin/bash
input_file="input.csv"
output_file="output.csv"
while IFS=',' read -ra line; do
if [[ "${line[1]: -3:1}" == "p" ]]; then
line[5]=1
else
line[5]=6
fi
echo "${line[*]}" >> "$output_file"
done < "$input_file"
```
这个脚本假设输入的表格文件名为`input.csv`,输出的表格文件名为`output.csv`。脚本会逐行读取输入文件,将每一行按照`,`分隔符拆分成一个数组`line`,然后判断第二列倒数第三个字符是否为`p`,如果是,则将第六列的值改为1,否则改为6。最后将修改后的行重新组合成字符串,并写入输出文件中。
需要注意的是,这个脚本处理时不区分表头和值,因此如果输入文件中有表头,其也会被处理。如果您需要保留表头,请在处理前将其从文件中删除。
阅读全文