使用“inplace”

时间:2018-01-11 13:19:35

标签: windows gawk inplace-editing

我的另一个问题是如何操纵文本文件。

我加入了几个大文件。现在,我有新的大文件中的所有标题,并希望在文件中删除它们而不保存在新文件中。

我的文件以“;”分隔并且曾经被“;”

分开

我在这里搜索并找到了一个oneliner:How to find lines matching a pattern and delete them?

我在我的cmd中尝试过(我正在运行Windows)并收到错误消息:

  

gawk:致命:无法打开源文件`inplace'进行阅读(没有这样的文件或目录)

我的代码行是:

gawk -i inplace "!/^Address (CO)/" filename.txt

我没有找到任何关于如何将它替换为Windows的内容,如果除了更改“to”之外还有一些特殊内容。 所有标题都包含第一栏中的“地址(CO)”作品。

我的输入示例:

  

地址(CO) - 客户 - 电话号码
  Mainstreet 1 - Carl Monte - 123456
  Mainstreet 2 - Anja Coleman - 407846
  地址(CO) - 客户 - 电话号码
  Mainstreet 10 - Sebastian Wol - 756189
  Mainstreet 7 - Dennis Mann - 694311
  地址(CO) - 客户 - 电话号码
  ...

期望的输出:

  

地址(CO) - 客户 - 电话号码
  Mainstreet 1 - Carl Monte - 123456
  Mainstreet 2 - Anja Coleman - 407846
  Mainstreet 10 - Sebastian Wol - 756189
  Mainstreet 7 - Dennis Mann - 694311
  ...

所以“只是”删除包含“地址”但不包含第一个外观的行。

我也尝试过oneliner:

gawk "!/Address/" filename.txt > newfile.txt

但我的输出与我输入的内容相同。所以filename.txt == newfile.txt。它没有删除任何东西。

添加输出执行以下操作:
我正在使用

将几个csv文件转换为txt
for /f "tokens=*" %%f in ('dir XLS\*.xls /s /b') do copy "%%f" ".\TXT\%%~nf.txt"

之后我使用powershellscript将制表分隔符换成分号:

for /f "delims=" %%i in ('dir TXT\*.txt /b /s') do powershell.exe -executionpolicy remotesigned -file %powershellscript% -path "%%i" -outPath "Output\%%~nxi"

现在我在一个文件夹中有几个带分号分隔符的txt文件。所有这些都有相同的标题。为了将没有标题的它们合并到一个“bigfile”中,我尝试了:

(for %%F in (Output\*.txt) do @more +1 "%%F") > output.txt

什么不起作用。我也试过了:

copy *.txt merged_tempfile.txt
gawk -F";" -v OFS=";" "$1 !~ /Address (CO)/ {print}" merged_tempfile.txt > bigfile.txt

什么不起作用...
当我尝试使用

gawk dos2unix file1  
gawk "!/Address (CO)/" file1.txt > temp1.txt

我只在temp1中获得与file1中相同的内容,在最后一栏中使用此内容。

  

਍圀嘀圀娀娀娀䄀䄀娀䔀䐀㤀㄀㌀㄀㐀㬀攀ა甀瀀℀栀碗最栀㘀䔀㄀䘀㬀䔀䰀㄀㬀攀ა刀攀洀漀琀攀㬀䈀圀㔀㬀漀琀爀昀昀昀搀搀搀搀氀ააა㌀ഀഀ㌀ഀഀ㌀ഀഀ㌀ഀഀ㌀ഀഀ㌀ഀഀ㌀ഀഀ㌀ഀഀ

0 个答案:

没有答案