ค้นหาคำในไฟล์. text และเขียนสองสามบรรทัดเป็นไฟล์. txt ใหม่


2

โปรดช่วยฉันสร้างสคริปต์เพื่อทำงานตามที่อธิบายไว้ด้านล่าง ฉันมี 2 ไฟล์ A.txt และ B.txt เนื้อหาของ A.txt ตามด้านล่าง


ITEM

name TICKY

title nice coffe drink

type DRINK

ITEM

name APPLE

title sweet tasty apple

type FRUIT

ITEM

name JUICE

title nice tasty drink

type DRINK

ITEM

name ORANG

title niice nice orange

type FRUIT

ITEM

name CHERY

title nutritious rich fruit

type FRUIT

ตอนนี้ฉันต้องการค้นหาใน A.text สำหรับคำว่า "FRUIT" และคัดลอกบรรทัดที่ 2 ที่ด้านบนของ "FRUIT" ไปยังไฟล์ใหม่ที่ชื่อว่า

list.txt แต่ฉันต้องการเพียงชื่อของผลไม้โดย list.txt ควรมีลักษณะดังนี้

APPLE

ORANG

CHERY

นี่คือรหัสของฉัน (powel shel) เพื่อทำสิ่งนี้


$source = "C:\temp\A.txt"

$destination = "C:\temp\list.txt"

$hits = select-string -Path $source -SimpleMatch "type FRUIT" -CaseSensitive

$filecontents = get-content $source

foreach($hit in $hits)

{

    $filecontents[$hit.linenumber-3]| out-file -append $destination

    "" |out-file -append $destination

}

สิ่งนี้จะแยกบรรทัดที่ 2 ตามด้านล่าง

name APPLE

name ORANG

name CHERY

และด้านล่างการเข้ารหัส) จะลบคำว่า "ชื่อ"


@echo off

setlocal enabledelayedexpansion

del list2.txt

for /f "tokens=*" %%a in (C:\temp\list.txt) do (

  set line=%%a

  set chars=!line:~-13,13!

  echo !chars! >> list2.txt

)

ในฐานะเฟสที่ 2 ตอนนี้ฉันต้องค้นหาคำในไฟล์ list.txt (APPLE, ORANG, CHERY ..... ) ใน B.txt ของฉัน .. B.txt จะเป็น

ดูตามด้านล่าง


ITEM

p_date 10/03/15

pt_time 11:29:40:00

title nice coffe drink

name TICKY

stock yes

end

ITEM

p_date 10/03/15

pt_time 11:29:40:00

title sweet tasty apple

name APPLE

stock yes

end

ITEM

p_date 10/03/15

pt_time 11:29:40:00

title nice tasty drink

name JUICE

stock yes

end

ITEM

p_date 10/03/15

pt_time 11:29:40:00

title niice nice orange

name ORANG

stock yes

end

ITEM

p_date 10/03/15

pt_time 11:29:40:00

title nutritious rich fruit

name CHERY

stock yes

end

และตอนนี้ฉันต้องค้นหาโลกจาก list.txt ใน B.txt และแยกบรรทัดบนสุด 3 บรรทัดและเขียนตามในไฟล์ใหม่

ชื่อ done.text ............ ด้านล่างเป็นรหัสของฉัน (powershell)


$source = "C:\temp\B.txt"

$destination = "C:\temp\done.txt"

$patterns = Get-Content c:\temp\list2.txt | Where-Object{$_}

$results = Select-String c:\temp\done.txt -Pattern $patterns -SimpleMatch

$results.Line | ForEach-Object{"$_`r`n"} | Set-Content c:\temp\done.txt

foreach($hit in $hits)

{

    $filecontents[$hit.linenumber-4]| out-file -append $destination

    $filecontents[$hit.linenumber-3]| out-file -append $destination

    $filecontents[$hit.linenumber-2]| out-file -append $destination

    $filecontents[$hit.linenumber-1]| out-file -append $destination

    "" |out-file -append $destination

}

ฉันจัดการเพื่อเขียนโค้ดสำหรับสิ่งนี้ แต่ฉันต้องการไฟล์สคริปต์ 3 (2 powershell และ 1 แบทช์) เพื่อดำเนินการนี้ให้เสร็จ กรุณา

ช่วยฉันทำภารกิจนี้ให้สำเร็จด้วยสคริปต์เดียว มันจะดีที่สุดหากอยู่ใน. vs หรือ. bat โปรดช่วยฉัน.. ขอขอบคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.