Извлечение столбцов от текстового файла с помощью остроты Perl: подобный Unix сокращается

Я использую Windows, и я хотел бы извлечь определенные столбцы из текстового файла с помощью Perl, Python, пакет и т.д. острота.

На Unix я мог сделать это:

cut -d " " -f 1-3 <my file>

Как я могу сделать это в Windows?

9
задан toolic 23 March 2010 в 12:42
поделиться

4 ответа

Это однострочник Perl для печати первых трех столбцов файла, разделенных пробелами. Это можно запустить в Windows (или Unix). Обратитесь к perlrun .

perl -ane "print qq(@F[0..2]\n)" file.txt
10
ответ дан 4 December 2019 в 13:01
поделиться

Это довольно простой скрипт Python:

for line in open("my file"):
    parts = line.split(" ")
    print " ".join(parts[0:3])
2
ответ дан 4 December 2019 в 13:01
поделиться

Самый простой способ сделать это - установить Cygwin и использовать команду Unix cut .

1
ответ дан 4 December 2019 в 13:01
поделиться

вы можете загрузить окна 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()]"
3
ответ дан 4 December 2019 в 13:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: