Board logo

标题: [其他] 【已解决】gawk:按行分割文本,如何指定输出路径 [打印本页]

作者: 思想之翼    时间: 2023-7-26 22:42     标题: 【已解决】gawk:按行分割文本,如何指定输出路径

本帖最后由 思想之翼 于 2023-7-28 13:19 编辑
  1. gawk "NR%%100==1{close(n\".txt\");++n}{print>n\".txt\"}" "d:\data1\a.txt"
复制代码
上述代码,将分割后的各个文本,写入代码所在的文件夹,如何写入指定的 d:\data2\ 文件夹?【非移动删除的方法】
作者: 447219071    时间: 2023-7-27 00:11

可以在输出文件路径前加上 d:\data2\ 目录的路径,如下所示:
  1. gawk "NR%%100==1{close(n\".txt\");++n}{print>n\"d:\data2\".txt\"}" "d:\data1\a.txt"
复制代码
这样就可以将分割后的各个文本写入指定的 d:\data2\ 文件夹中。请注意,在输出文件路径中使用双反斜杠 \\ 来转义反斜杠 \,以避免路径中的反斜杠被解释为转义字符。
作者: 思想之翼    时间: 2023-7-27 00:43

本帖最后由 思想之翼 于 2023-7-27 11:00 编辑

回复 2# 447219071

测试 d:\data2\   d:\\data2\\  都没通过,恳望指点,谢谢!
作者: 77七    时间: 2023-7-27 11:34

外行思路...
  1. @echo off
  2. pushd "d:\data2\"
  3. gawk "NR%%100==1{close(n\".txt\");++n}{print>n\".txt\"}" "d:\data1\a.txt"
  4. popd
复制代码

作者: hfxiang    时间: 2023-7-27 17:14

回复 1# 思想之翼
  1. gawk "NR%100==1{close(\"d:/data2/\"n\".txt\");++n}{print>\"d:/data2/\"n\".txt\"}" "d:\data1\a.txt"
复制代码

作者: 思想之翼    时间: 2023-7-27 19:54

回复 5# hfxiang

感谢!我自己测试,未能分割文件,只生成一个名为“.txt”的文件,内容与原文件一样。
作者: hfxiang    时间: 2023-7-28 08:45

回复 6# 思想之翼

5楼的指令俺在命令行中测试完全正常(用单百分号:%),如果在脚本中执行,需用双百分号(双百分号:%%),如下,经测试亦完全正常
  1. gawk "NR%%100==1{close(\"d:/data2/\"n\".txt\");++n}{print>\"d:/data2/\"n\".txt\"}" "d:\data1\a.txt"
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2