方法一:如果始终是2nd你想要的列,你可以这样做awk-- 这个命令实际上是在空格而不是逗号上分割行,所以它得到你的第二列 -- 数字,但没有前导空格:
awk '{print $2}' < whatever.csv
方法二:或者得到一切逗号之后(包括空间):
sed -e 's/^.*,//g' < whatever.csv
方法三:如果你想找到所有的.csv文件并将所有这些文件的输出放在一起,您可以执行以下操作:
sed -e 's/^.*,//g' `find . -name '*.csv' -print`
方法四:或者就像你开始那样——find and xargs:
find . -name '*.csv' -type f -print | xargs sed -e 's/^.*,//'
方法5:使所有的.csv文件到 .txt文件,按上述方式处理后,就可以制作一个简短的shell脚本了。像这样:
创建脚本“bla.sh":
#!/bin/sh
for infile in `find . -name '*.csv' -print` ; do
outfile=`echo $infile | sed -e 's/.csv/.txt/'`
echo "$infile --> $outfile"
sed -e 's/^.*,//g' < $infile > $outfile
done
输入以下命令使其可执行:
chmod 755 bla.sh
然后运行它:
./bla.sh
这将创建一个.txt输出文件,其中每个内容都在逗号后面.csv输入文件。
替代方法 5:或者如果您需要他们的名字.csv,脚本可以这样更新——这只会生成一个名为“的输出文件”文件-new.csv“对于每个名为“的输入文件file.csv":
#!/bin/sh
for infile in `find . -name '*.csv' -print` ; do
outfile=`echo $infile | sed -e 's/.csv/-new.csv/'`
echo "$infile --> $outfile"
sed -e 's/^.*,//g' < $infile > $outfile
done