คำถามติดแท็ก text-processing

การจัดการหรือตรวจสอบข้อความโดยโปรแกรมสคริปต์ ฯลฯ

8
วิธี grep-inverse-match และแยกบรรทัด“ before” และ“ after”
พิจารณาไฟล์ข้อความด้วยรายการต่อไปนี้: aaa bbb ccc ddd eee fff ggg hhh iii ด้วยรูปแบบ (เช่นfff) ฉันต้องการ grep ไฟล์ด้านบนเพื่อให้ได้ผลลัพธ์: all_lines except (pattern_matching_lines U (B lines_before) U (A lines_after)) ตัวอย่างเช่นถ้าB = 2และA = 1เอาต์พุตที่มี pattern = fffควรเป็น: aaa bbb ccc hhh iii ฉันจะทำสิ่งนี้กับ grep หรือเครื่องมือบรรทัดคำสั่งอื่น ๆ ได้อย่างไร หมายเหตุเมื่อฉันลอง: grep -v 'fff' -A1 -B2 file.txt ฉันไม่ได้สิ่งที่ฉันต้องการ …

6
เชื่อมหลายไฟล์เข้าด้วยกันด้วยส่วนหัวเดียวกัน
ฉันมีหลายไฟล์ที่มีส่วนหัวเดียวกันและเวกเตอร์ต่างกันด้านล่าง ฉันต้องต่อกันทั้งหมด แต่ฉันต้องการเฉพาะส่วนหัวของไฟล์แรกที่จะต่อกันและฉันไม่ต้องการให้ส่วนหัวอื่นถูกต่อกันเนื่องจากมันเหมือนกันทั้งหมด ตัวอย่างเช่น: file1.txt <header>INFO=<ID=DP,Number=1,Type=Integer> <header>INFO=<ID=DP4,Number=4,Type=Integer> A B C file2.txt <header>INFO=<ID=DP,Number=1,Type=Integer> <header>INFO=<ID=DP4,Number=4,Type=Integer> D E F ฉันต้องการผลลัพธ์ที่จะเป็น <header>INFO=<ID=DP,Number=1,Type=Integer> <header>INFO=<ID=DP4,Number=4,Type=Integer> A B C D E F ฉันสามารถเขียนสคริปต์ใน R แต่ฉันต้องการมันในเปลือก?

6
ฉันจะแยกเนื้อหาของสตริงที่ยกมาจากผลลัพธ์ของคำสั่งได้อย่างไร
ฉันมีผลลัพธ์จากVBoxManage list vmsที่มีลักษณะเช่นนี้: "arch" {de1a1db2-86c5-43e7-a8de-a0031835f7a7} "arch2" {92d8513c-f13e-41b5-97e2-2a6b17d47b67} ฉันต้องการที่จะคว้าชื่อarchและarch2และบันทึกไว้ในตัวแปร

11
ฉันจะพิมพ์บรรทัดจากไฟล์ย้อนหลังได้อย่างไร (โดยไม่ใช้“ tac”)
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Unix & Linux Stack Exchange อพยพ 8 ปีที่แล้ว ฉันต้องการพิมพ์บรรทัดจากไฟล์ข้างหลังโดยไม่ใช้tacคำสั่ง มีวิธีอื่นในการทำสิ่งนั้นด้วยการทุบตี?

4
วิธีแยกล็อกระหว่างการประทับเวลาสองครั้ง
ฉันต้องการแยกบันทึกทั้งหมดระหว่างการประทับเวลาสองครั้ง บางบรรทัดอาจไม่มีการประทับเวลา แต่ฉันต้องการเส้นเหล่านั้นด้วย ในระยะสั้นฉันต้องการทุกบรรทัดที่อยู่ภายใต้การประทับเวลาสองครั้ง โครงสร้างบันทึกของฉันดูเหมือนว่า: [2014-04-07 23:59:58] CheckForCallAction [ERROR] Exception caught in +CheckForCallAction :: null --Checking user-- Post [2014-04-08 00:00:03] MobileAppRequestFilter [DEBUG] Action requested checkforcall สมมติว่าผมต้องการที่จะดึงทุกอย่างระหว่างและ2014-04-07 23:002014-04-08 02:00 โปรดทราบว่าการประทับเวลาเริ่มต้นหรือการประทับเวลาสิ้นสุดอาจไม่มีอยู่ในบันทึก แต่ฉันต้องการทุกบรรทัดระหว่างการประทับเวลาสองครั้งนี้

9
จะพิมพ์เฉพาะคอลัมน์สุดท้ายได้อย่างไร
echo -e 'one two three\nfour five six\nseven eight nine' one two three four five six seven eight nine ฉันจะทำ "MAGIC" บางอย่างเพื่อรับเอาต์พุตนี้ได้อย่างไร: three six nine อัปเดต: ฉันไม่ต้องการในวิธีนี้โดยเฉพาะฉันต้องการโซลูชันทั่วไปเพื่อให้ไม่ว่าจะมีคอลัมน์อยู่กี่แถวเช่น: awk แสดงคอลัมน์สุดท้ายเสมอ

8
วิธีลบคอลัมน์สุดท้ายของไฟล์ใน Linux
ฉันต้องการลบคอลัมน์สุดท้ายของไฟล์ txt ในขณะที่ฉันไม่ทราบว่าหมายเลขคอลัมน์คืออะไร ฉันจะทำสิ่งนี้ได้อย่างไร ตัวอย่าง: การป้อนข้อมูล: 1223 1234 1323 ... 2222 123 1233 1234 1233 ... 3444 125 0000 5553 3455 ... 2334 222 และฉันต้องการให้ผลลัพธ์ของฉันเป็น: 1223 1234 1323 ... 2222 1233 1234 1233 ... 3444 0000 5553 3455 ... 2334

5
ทำไม xargs ตัดเครื่องหมายคำพูดออกจากอินพุต
ทำไม xargs ตัดเครื่องหมายคำพูดออกจากข้อความอินพุต นี่คือตัวอย่างง่าย ๆ : echo "/Place/='http://www.google.com'" | xargs echo เอาท์พุท /Place/=http://www.google.com มีวิธีการแก้ไขปัญหานี้หรือไม่? (xargs -0 ไม่ช่วยฉัน)

5
ทำไมการแทนที่คำสั่งของเชลล์จึงฮุบไลน์อักขระบรรทัดใหม่?
ตามตัวอย่างต่อไปนี้และในคำถามล่าสุดของฉัน ในทุบตีอักขระขึ้นบรรทัดใหม่หายไปไหน ฉันต้องการรู้ว่า "ทำไม" มันเกิดขึ้น x="$(echo -ne "a\nb\n")" ; echo -n "$x" | xxd -p # Output is: 610a62 # The trailing newline from the 'echo' command # has been "deleted" by Command Substitution ฉันคิดว่าจะต้องมีเหตุผลที่สำคัญมากสำหรับการกระทำของเชลล์นั่นคือการแทนที่คำสั่งเพื่อลบข้อมูลบางส่วนออกจากผลลัพธ์ของคำสั่งมันเป็นการแทนที่ ... แต่ฉันไม่สามารถเอาหัวของฉันไปรอบ ๆ สิ่งนี้ได้ สิ่งที่ตรงกันข้ามที่ควรทำ .. คือ เพื่อส่งผ่านคำสั่งกลับไปยังกระบวนการสคริปต์ ... การถือตัวละครหนึ่งตัวกลับดูแปลกสำหรับฉัน แต่ฉันคิดว่ามันมีเหตุผลที่สมเหตุสมผลสำหรับมัน ... ฉันกระตือรือร้นที่จะค้นหาว่าเหตุผลนั้นคืออะไร .. .

9
วิธีลบทุกบรรทัดที่สองจากไฟล์ได้อย่างไร
ไฟล์: Data inserted into table. Total count 13 No error occurred Data inserted into table. Total count 45 No error occurred Data inserted into table. Total count 14 No error occurred Data inserted into table. Total count 90 No error occurred ไฟล์เอาต์พุตที่คาดหวัง: Data inserted into table. Total count 13 Data …

2
tr บ่น“ ลำดับไบต์ที่ผิดกฎหมาย”
ฉันเป็นแบรนด์ใหม่สำหรับ UNIX และฉันใช้ "The Mac OS X Command Line" ของ Kirk McElhearn เพื่อสอนตัวเองด้วยคำสั่งบางอย่าง ฉันพยายามใช้trและgrepเพื่อให้ฉันสามารถค้นหาสตริงข้อความในเอกสาร MS-Office Word ปกติ $ tr '\r' '\n' < target-file | grep search-string แต่ผลตอบแทนทั้งหมดคือ: Illegal byte sequence. robomechanoid:Position-Paper-Final-Draft robertjralph$ tr '\r' '\n' < Position-Paper-Final-Version.docx | grep DeCSS tr: Illegal byte sequence robomechanoid:Position-Paper-Final-Draft robertjralph$ ฉันใช้สคริปต์บรรทัดเดียวกับที่ฉันสร้างขึ้นviและทำการค้นหาอย่างถูกต้อง

3
คำสั่ง Unix ตรวจสอบว่ามีสองบรรทัดในไฟล์เหมือนกันหรือไม่?
มีคำสั่ง unix ที่สามารถตรวจสอบว่ามีสองบรรทัดในไฟล์เหมือนกันหรือไม่? สำหรับตัวอย่างพิจารณาไฟล์ sentences.txt This is sentence X This is sentence Y This is sentence Z This is sentence X This is sentence A This is sentence B เราเห็นว่าประโยคนั้น This is sentence X ซ้ำแล้วซ้ำอีก มีคำสั่งใด ๆ ที่สามารถตรวจจับสิ่งนี้ได้อย่างรวดเร็วหรือไม่เพื่อที่ฉันจะสามารถใช้มันได้ - $ cat sentences.txt | thecommand Line 1:This is sentence X Line …

5
จะ grep สำหรับข้อความในไฟล์และแสดงย่อหน้าที่มีข้อความได้อย่างไร
ด้านล่างนี้เป็นข้อความในไฟล์: Pseudo name=Apple Code=42B state=fault Pseudo name=Prance Code=43B state=good ฉันต้องการ grep สำหรับ "42B" และรับผลลัพธ์จากข้อความข้างต้นเช่น: Pseudo name=Apple Code=42B state=fault ใครบ้างมีความคิดเกี่ยวกับวิธีการบรรลุการใช้grep/ awk/ sed?

8
ฉันจะผนวกข้อความไปยังจุดเริ่มต้นและจุดสิ้นสุดของไฟล์ข้อความหลายไฟล์ใน Bash ได้อย่างไร
ฉันมีไดเรกทอรีที่เต็มไปด้วยไฟล์ข้อความ เป้าหมายของฉันคือเพิ่มข้อความต่อท้ายและท้ายข้อความทั้งหมด ข้อความที่ไปที่จุดเริ่มต้นและจุดสิ้นสุดนั้นเหมือนกันสำหรับแต่ละไฟล์ ขึ้นอยู่กับรหัสที่ฉันได้รับจากเว็บนี่คือรหัสสำหรับต่อท้ายไฟล์: echo -e 'var language = {\n$(cat $BASEDIR/Translations/Javascript/*.txt)' > $BASEDIR/Translations/Javascript/*.txt นี่คือรหัสสำหรับการผนวกท้ายไฟล์ เป้าหมายคือการเพิ่มข้อความ};ที่ส่วนท้ายของแต่ละไฟล์: echo "};" >> $BASEDIR/Translations/Javascript/*.txt ตัวอย่างที่ฉันวาดมานั้นมีไว้สำหรับการแสดงในแต่ละไฟล์ ฉันคิดว่าฉันพยายามทำหน้าที่ในหลาย ๆ *.txtไฟล์โดยใช้สัญลักษณ์แทน, ฉันอาจทำผิดพลาดอื่น ๆ เช่นกัน ไม่ว่าในกรณีใดฉันจะต่อท้ายข้อความไปยังจุดเริ่มต้นและจุดสิ้นสุดของไฟล์หลาย ๆ ไฟล์ได้อย่างไร

6
ฉันจะทำให้โปรแกรมหลามทำงานอย่างไรเช่นเครื่องมือยูนิกซ์ที่เหมาะสม?
ฉันมีสคริปต์ Python อยู่สองสามตัวและฉันก็กำลังเขียนมันใหม่ ฉันมีปัญหาเดียวกันกับพวกเขาทั้งหมด ฉันไม่เห็นได้ชัดว่าจะเขียนโปรแกรมอย่างไรเพื่อให้พวกเขาทำตัวเหมือนเครื่องมือยูนิกซ์ที่เหมาะสม เพราะสิ่งนี้ $ cat characters | progname และนี่ $ progname characters ควรสร้างผลลัพธ์เดียวกัน สิ่งที่ใกล้เคียงที่สุดที่ฉันสามารถพบได้ใน Python คือไลบรารี fileinput น่าเสียดายที่ฉันไม่เห็นวิธีเขียนสคริปต์ Python ของฉันอีกครั้งซึ่งทั้งหมดมีลักษณะดังนี้: #!/usr/bin/env python # coding=UTF-8 import sys, re for file in sys.argv[1:]: f = open(file) fs = f.read() regexnl = re.compile('[^\s\w.,?!:;-]') rstuff = regexnl.sub('', fs) f.close() print rstuff …

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