คำถามติดแท็ก sed

Sed ย่อมาจาก Stream EDitor ซึ่งเป็นหนึ่งในเครื่องมือพื้นฐานในสภาพแวดล้อม POSIX ประมวลผลไฟล์ตั้งแต่หนึ่งไฟล์ขึ้นไปตามสคริปต์การแก้ไขและเขียนผลลัพธ์ไปยังเอาต์พุตมาตรฐาน สร้างขึ้นใน Bell Labs มีมาตั้งแต่กลางทศวรรษที่ 70

10
วิธีการแสดงบางบรรทัดจากไฟล์ข้อความใน Linux?
ฉันเดาว่าทุกคนรู้ว่าอรรถประโยชน์บรรทัด Linux cmd headและtailประโยชน์ headอนุญาตให้คุณพิมพ์บรรทัด X แรกของไฟล์tailทำเช่นเดียวกัน แต่พิมพ์จุดสิ้นสุดของไฟล์ คำสั่งที่ดีในการพิมพ์ที่ตรงกลางของไฟล์คืออะไร? บางอย่างเช่นmiddle --start 10000000 --count 20(พิมพ์ 10'000'000th จนถึง th 10'000'010 บรรทัด) ฉันกำลังมองหาบางอย่างที่จะจัดการกับไฟล์ขนาดใหญ่ได้อย่างมีประสิทธิภาพ ฉันพยายามtail -n 10000000 | head 10แล้วมันก็ช้ามาก

8
bash / sed / awk / etc ลบบรรทัดใหม่อื่น ๆ ออก
คำสั่ง bash ให้ผลลัพธ์นี้: Runtime Name: vmhba2:C0:T3:L14 Group State: active Runtime Name: vmhba3:C0:T0:L14 Group State: active unoptimized Runtime Name: vmhba2:C0:T1:L14 Group State: active unoptimized Runtime Name: vmhba3:C0:T3:L14 Group State: active Runtime Name: vmhba2:C0:T2:L14 Group State: active ฉันต้องการส่งไปที่บางสิ่งเพื่อให้มีลักษณะดังนี้: Runtime Name: vmhba2:C0:T1:L14 Group State: active Runtime Name: vmhba3:C0:T3:L14 Group State: active unoptimized Runtime …
39 bash  sed  awk 

6
วิธีการเปลี่ยนชื่อไฟล์หลาย ๆ ไฟล์โดยแทนที่ word ในชื่อไฟล์?
เปลี่ยน ACDC เป็น AC-DC ตัวอย่างเช่นเรามีไฟล์เหล่านี้ ACDC - Rock N 'Roll ไม่ใช่มลพิษทางเสียง ACDC - Rocker.xxx ACDC - Shoot To Thrill.xxx ฉันต้องการให้พวกเขาเป็น: AC-DC - Rock N 'Roll ไม่ก่อให้เกิดมลภาวะทางเสียง xxx AC-DC - Rocker.xxx AC-DC - Shoot To Thrill.xxx ฉันรู้ว่า sed หรือ awk ใช้สำหรับการดำเนินการนี้ ฉันไม่สามารถ google อะไรดังนั้นฉันขอความช่วยเหลือจากคุณ =) คุณช่วยกรุณาให้คำสั่งเชลล์ทำงานเต็มสำหรับงานนี้หรือไม่? ข้อคิดเห็น: โซลูชันสำหรับผู้ใช้ OSX
36 shell  files  rename  sed 

8
วิธีค้นหาที่อยู่ mac ของเครื่องทั้งหมดในเครือข่าย
มีวิธีง่าย ๆ ในการค้นหาที่อยู่ mac ของเครื่องทั้งหมดในเครือข่ายของฉันแทนที่จะทำ SSH ลงในแต่ละเครื่องและifconfig | grep HWaddrหากมี 300 เครื่องในเครือข่ายฉันต้องการโซลูชันที่ง่ายจริงๆ

3
sed แทนที่แท็บและช่องว่างทั้งหมดด้วยช่องว่างเดียว
ฉันได้รับสตริงเหมือนดังต่อไปนี้: test.de. 1547 IN SOA ns1.test.de. dnsmaster.test.de. 2012090701 900 1000 6000 600 ตอนนี้ฉันต้องการแทนที่แท็บ / ช่องว่างทั้งหมดในระหว่างระเบียนด้วยช่องว่างเดียวเพื่อให้ฉันสามารถใช้กับ cut -d " " ฉันพยายามต่อไปนี้: sed "s/[\t[:space:]]+/[:space:]/g" และความหลากหลายต่าง ๆ แต่ไม่สามารถทำงานได้ ความคิดใด ๆ

4
คำสั่ง Linux shell เพื่อกรองไฟล์ข้อความตามความยาวบรรทัด
ฉันมีดิสก์อิมเมจ 30gb ของพาร์ติชัน borked (คิดว่าdd if=/dev/sda1 of=diskimage) ที่ฉันต้องการกู้คืนไฟล์ข้อความบางไฟล์ ข้อมูลการแกะสลักเครื่องมือเช่นการทำงานเฉพาะในไฟล์ที่มีส่วนหัวที่กำหนดไว้อย่างดีเช่นไม่ไฟล์ข้อความธรรมดาดังนั้นฉันได้กลับลดลงในเพื่อนที่ดีของฉันforemoststrings strings diskimage > diskstrings.txt ผลิตไฟล์ข้อความ 3gb ที่มีสตริงจำนวนมากซึ่งส่วนใหญ่เป็นสิ่งที่ไร้ประโยชน์ผสมกับข้อความที่ฉันต้องการจริง ๆ เรือลาดตระเวนส่วนใหญ่มีแนวโน้มที่จะยาวและไม่มีเรี่ยวแรงมากนัก สิ่งที่ฉันสนใจรับประกันได้ว่าจะน้อยกว่า 16kb ดังนั้นฉันจะกรองไฟล์ตามความยาวบรรทัด นี่คือสคริปต์ Python ที่ฉันใช้: infile = open ("infile.txt" ,"r"); outfile = open ("outfile.txt","w"); for line in infile: if len(line) < 16384: outfile.write(line) infile.close() outfile.close() งานนี้ แต่สำหรับการอ้างอิงในอนาคตจะมีผู้ใดมนต์ขลังหนึ่งบรรทัด (คิดว่าawk, sed) ที่จะกรองไฟล์โดยความยาวสายหรือไม่?
19 sed  filter  awk  strings 

5
ใช้ sed เพื่อลบทั้งการเปิดและปิดวงเล็บเหลี่ยมรอบสตริง
ฉันใช้คำสั่งนี้ใน bash shell บน Ubuntu 12.04.1 LTS ฉันพยายามที่จะลบทั้งตัวละคร[และ]ตัวละครในฉากที่ตกเช่นเดียวโดยไม่ต้องไปปฎิบัติซ้ำอีกครั้ง ฉันรู้ว่าวงเล็บเหลี่ยมมีความหมายพิเศษใน regex ดังนั้นฉันจึงหลบหนีพวกเขาโดยใส่เครื่องหมายแบ็กสแลชไว้ล่วงหน้า ผลลัพธ์ที่ฉันคาดหวังเป็นเพียงสตริง123แต่วงเล็บเหลี่ยมยังคงอยู่และฉันชอบที่จะรู้ว่าทำไม! ~$ echo '[123]' | sed 's/[\[\]]//' [123]
18 bash  regex  sed 


3
วิธีลบตัวละครทั้งหมดในหนึ่งบรรทัดหลัง“]” ด้วย sed?
วิธีลบตัวละครทั้งหมดในหนึ่งบรรทัดหลังจาก "]" ด้วย sed? ฉันกำลังพยายาม grep ไฟล์โดยใช้ cat, awk ตอนนี้ Oneliner ของฉันส่งคืนสิ่งที่ชอบ 121.122.121.111] other characters in logs from sendmail.... :) ตอนนี้ฉันต้องการลบทั้งหมดหลังจากอักขระ "]" (พร้อม "]") ฉันต้องการเฉพาะ121.122.121.111ในผลลัพธ์ของฉัน ฉันกำลังค้นหาตัวอย่างเฉพาะของความเฉยเมย แต่ไม่พบความช่วยเหลือในตัวอย่างเหล่านั้น
13 linux  sed  awk 

6
จะแยกวิเคราะห์และแปลงไฟล์ ini เป็นตัวแปรอาเรย์ bash ได้อย่างไร?
ฉันพยายามแปลงไฟล์ ini เป็นตัวแปรอาเรย์ของ bash ตัวอย่าง ini ดังต่อไปนี้: [foobar] session=foo path=/some/path [barfoo] session=bar path=/some/path ดังนั้นสิ่งเหล่านี้จึงกลายเป็น: session[foobar]=foo path[foobar]=/some/path session[barfoo]=bar และอื่น ๆ ตอนนี้ฉันสามารถขึ้นมาด้วยคำสั่งนี้เท่านั้น awk -F'=' '{ if ($1 ~ /^\[/) section=$1; else if ($1 !~ /^$/) print $1 section "=" $2 }' นอกจากนี้ยังมีปัญหาอื่นคือมันไม่ได้ใช้พื้นที่ใกล้=เข้าสู่การพิจารณา ฉันคิดว่าsedน่าจะเหมาะกว่าสำหรับงานนี้ แต่ฉันไม่รู้ว่าจะเก็บและเก็บตัวแปรชั่วคราวสำหรับชื่อส่วนsedได้อย่างไร ดังนั้นความคิดวิธีการทำเช่นนี้?

5
ฉันจะแปลงเอนทิตีพิเศษ HTML ได้อย่างง่ายดายจากอินพุตสตรีมมาตรฐานใน Linux ได้อย่างไร
CentOS มีวิธีง่ายๆในการแปลงเอนทิตีพิเศษ HTML จากสตรีมข้อมูลหรือไม่ ฉันกำลังส่งข้อมูลไปยังสคริปต์ทุบตีและบางครั้งข้อมูลนั้นมีเอนทิตีพิเศษ ตัวอย่างเช่น: "ทดสอบ" & amp; ทดสอบ $ ทดสอบ! ทดสอบ @ # $% ^ & amp; * * * * ฉันไม่แน่ใจว่าทำไมตัวละครบางตัวถึงแสดงได้ดีและอื่น ๆ ไม่ได้ แต่น่าเสียดายที่ฉันไม่สามารถควบคุมข้อมูลที่เข้ามาได้ ฉันคิดว่าฉันอาจจะสามารถใช้ SED ได้ที่นี่ แต่ดูเหมือนว่าจะยุ่งยากและมีแนวโน้มที่จะเกิดผลบวกปลอม มีคำสั่ง Linux ที่ฉันสามารถใช้กับที่เชี่ยวชาญในการถอดรหัสข้อมูลประเภทนี้หรือไม่?
9 linux  bash  scripting  sed  html 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.