我有一个制表符分隔文件private static void sendEmail(Context context, File file) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"XXXXXXXXXX ENTER EMAIL"});
intent.putExtra(Intent.EXTRA_SUBJECT, "Log Report");
intent.putExtra(Intent.EXTRA_TEXT, "Add description:");
if (!file.exists() || !file.canRead()) {
Toast.makeText(context, "Attachment Error", Toast.LENGTH_SHORT).show();
return;
}
Uri uri = Uri.parse("file://" + file);
intent.putExtra(Intent.EXTRA_STREAM, uri);
context.startActivity(Intent.createChooser(intent, "Send email..."));
}
,其内容如下:
file.txt
我想将每个列复制到另一个文件中。例如: 第一个文件将包含:
word11 word12 word13 word14
word21 word22 word23 word24
word31 word32 word33 word34
word41 word42 word43 word44
第二个文件将包含:
word11
word21
word31
word41
我编写了相同的脚本(有12列):
word12
word22
word32
word42
但是所有输出文件都包含所有数据:
for i in {1..12}
do
awk -F "\t" '{print $i}' file.txt > /tmp/output-$i.txt
done
感谢您的帮助。
答案 0 :(得分:5)
您正试图在Awk
中使用从不工作的shell变量。但是你要做的事情完全可以在Awk
本身完成。 For NF
的for循环将解析您的所有列,您不再需要对其进行硬编码。
awk -v FS="\t" '{for (i=1;i<=NF;i++) print $i > ("/tmp/output-"i);}' file.txt
答案 1 :(得分:3)
您只需使用剪切
即可for i in {1..12}
do
cut -f$i file.txt > /tmp/output-$i.txt;
done