Я использую Windows, и я хотел бы извлечь определенные столбцы из текстового файла с помощью Perl, Python, пакет и т.д. острота.
На Unix я мог сделать это:
cut -d " " -f 1-3 <my file>
Как я могу сделать это в Windows?
Это однострочник Perl для печати первых трех столбцов файла, разделенных пробелами. Это можно запустить в Windows (или Unix). Обратитесь к perlrun .
perl -ane "print qq(@F[0..2]\n)" file.txt
Это довольно простой скрипт Python:
for line in open("my file"):
parts = line.split(" ")
print " ".join(parts[0:3])
Самый простой способ сделать это - установить Cygwin и использовать команду Unix cut
.
вы можете загрузить окна GNU и использовать свой обычный cut / awk и т. Д. Или изначально вы можете использовать vbscript
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objArgs = WScript.Arguments
strFile = objArgs(0)
Set objFile = objFS.OpenTextFile(strFile)
Do Until objFile.AtEndOfLine
strLine=objFile.ReadLine
sp = Split(strLine," ")
s=""
For i=0 To 2
s=s&" "&sp(i)
Next
WScript.Echo s
Loop
, сохраните приведенное выше как mysplit.vbs и в командной строке
c:\test> cscript //nologo mysplit.vbs file
Или просто пакет
@echo off
for /f "tokens=1,2,3 delims= " %%a in (file) do (echo %%a %%b %%c)
Если вам нужен однострочный Python
c:\test> type file|python -c "import sys; print [' '.join(i.split()[:3]) for i in sys.stdin.readlines()]"