การล้างค่าพารามิเตอร์ URL มวลจากไฟล์ txt


1

ฉันมีไฟล์พร้อมรายการ URL ดังนี้:

www.dell.com/any=abc&anyone=bcd
www.google.co.in 
www.yahoo.com/abc=fgh

ฉันต้องการล้างพวกเขาเนื่องจากพวกเขาแสดงเฉพาะข้อมูลที่เท่ากับเครื่องหมายเท่ากัน ตัวอย่างข้างต้นควรเป็น:

www.dell.com/any=
www.dell.com/any=abc&anyone=
www.google.co.in 
www.yahoo.com/abc=

มีคำแนะนำสคริปต์สำหรับการล้างรหัสเช่นนี้ในหลามหรือทุบตี ฯลฯ ?

คำตอบ:


2

หากฉันเข้าใจถูกต้องคุณต้องการใช้การแปลงต่อไปนี้:

  • หากบรรทัดไม่มี =, ไม่ทำอะไร
  • หากบรรทัดนั้นมีเส้นเดียว =จากนั้นลบทุกอย่างหลังจาก =
  • ถ้าบรรทัดมีหลาย =จากนั้นทำขั้นตอนก่อนหน้าซ้ำ ๆ จนกระทั่งไม่มีการพิมพ์ผลลัพธ์ตัวกลางในแต่ละขั้น

นี่เป็นวิธีหนึ่งในการทำเช่นนั้น:

#!/usr/bin/env bash

while read line; do
    if [[ "$line" == *=* ]]; then
        while [[ "$line" == *=* ]]; do
            line=${line%=*}
            echo $line=
        done
    else
        echo $line
    fi
done

หากคุณบันทึกไว้ในไฟล์ script.shคุณสามารถใช้สิ่งนี้:

./script.sh < input.txt

สิ่งนี้จะสร้างผลลัพธ์ที่คุณถามในคำถามของคุณ


สิ่งเล็กน้อย แต่สคริปต์ของคุณมี #!/usr/bin/bash ตั้ง แต่ในหลาย ๆ ระบบมัน #!/bin/bash.
JakeGould

1
ขอบคุณ @ JakeGould จริง ๆ แล้วนั่นไม่ใช่สิ่งที่ฉันตั้งใจจะเขียน
janos

สิ่งนี้ใช้ได้ดี ,, ขอบคุณ ,, เพียงแค่เพิ่มหนึ่งถ้าคุณสามารถ ,,,, เอาท์พุทข้อมูลนี้ไปยังไฟล์ txt ในสคริปต์เช่น - echo data & gt; & gt; output.txt ,,, อย่างนี้
user7423959

@ user7423959 ไม่แน่ใจว่าคุณหมายถึงอะไร คุณสามารถเรียกใช้เป็น ./script.sh < input.txt > output.txtหรือถ้าคุณต้องการทำให้ส่วนการบันทึกของสคริปต์แล้วคุณสามารถเปลี่ยนเส้นทางวนโดยการเปลี่ยน done คำสั่งไปยัง done > output.txt
janos
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.