任何人都可以帮我删除文件中的括号吗? 这是我的剧本..
#!/bin/bash
for file in fftw is_c mpi_tile pmb tau xhpl
do
for state in C0 C1 C2 C4
do
printf "${file}_${state}_v1.xls"
sed -e 's/\(//' ${file}_${state}_v1.xls
sed -e 's/\)//' ${file}_${state}_v1.xls
awk '{sum+=$3} ; END {print " ", sum/NR}' ${file}_${state}_v1.xls >> c-state-residency.xls
done
done
答案 0 :(得分:2)
简短回答:使用--in-place
和sed做你认为你正在做的事情。
您正在删除括号,而不是括号,只删除每行中的第一个(或者如果您删除了不需要的\
,则会删除。)这对Excel电子表格来说似乎也很奇怪。
您可能希望将sed命令的输出通过管道传输到awk,而不是修改文件到位...
答案 1 :(得分:1)
我会使用tr -d ...
,如下所示:
$ echo "(this is my string)" | tr -d '()'
this is my string
答案 2 :(得分:0)
找到删除特殊字符的解决方案
#!/bin/bash
for file in fftw is_c mpi_tile pmb tau xhpl
do
for state in C0 C1 C2 C4
do
printf "${file}_${state}_v1.xls"
sed -e 's/[()]//g' ${file}_${state}_v1.xls
awk '{sum+=$3} ; END {print "Average C-state residency ", sum/NR}' ${file}_${state}_v1.xls >> c-state-residency.xls
done
done
答案 3 :(得分:0)
而不是使用sed,使用“tr”替换没有任何内容的字符似乎更简单
cat ${file}_${state}_v1.xls | tr '(' '' | tr ')' '' > ${file}_${state}_v1.xls