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

การแทนที่คือการดำเนินการค้นหาสตริงย่อยและแทนที่ด้วยสตริงอื่น

20
เปลี่ยนชื่อไฟล์ซ้ำ ๆ โดยใช้ find และ sed
ฉันต้องการอ่านไดเรกทอรีจำนวนมากและเปลี่ยนชื่อไฟล์ทั้งหมดที่ลงท้ายด้วย _test.rb เพื่อลงท้ายด้วย _spec.rb แทน มันเป็นสิ่งที่ฉันไม่เคยคิดมาก่อนว่าจะทำอย่างไรกับการทุบตีดังนั้นคราวนี้ฉันคิดว่าฉันจะพยายามอย่างเต็มที่เพื่อให้มันถูกตอก จนถึงตอนนี้ฉันคิดได้สั้น ๆ แต่ความพยายามที่ดีที่สุดของฉันคือ: find spec -name "*_test.rb" -exec echo mv {} `echo {} | sed s/test/spec/` \; หมายเหตุ: มีเสียงสะท้อนเพิ่มเติมหลังจาก exec เพื่อให้พิมพ์คำสั่งแทนการรันในขณะที่ฉันกำลังทดสอบ เมื่อฉันเรียกใช้ผลลัพธ์สำหรับชื่อไฟล์ที่ตรงกันคือ: mv original original กล่าวคือการแทนที่โดย sed ได้สูญหายไป เคล็ดลับคืออะไร?
87 bash  scripting  sed  find  replace 

6
แทนที่สตริง XSLT
ฉันไม่รู้จริงๆว่า XSL แต่ฉันต้องการแก้ไขโค้ดนี้ฉันได้ลดมันลงเพื่อให้ง่ายขึ้น ฉันได้รับข้อผิดพลาดนี้ ฟังก์ชัน XSLT / XPath ไม่ถูกต้อง ในบรรทัดนี้ <xsl:variable name="text" select="replace($text,'a','b')"/> นี่คือ XSL <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:inm="http://www.inmagic.com/webpublisher/query" version="1.0"> <xsl:output method="text" encoding="UTF-8" /> <xsl:preserve-space elements="*" /> <xsl:template match="text()" /> <xsl:template match="mos"> <xsl:apply-templates /> <xsl:for-each select="mosObj"> 'Notes or subject' <xsl:call-template name="rem-html"> <xsl:with-param name="text" select="SBS_ABSTRACT" /> </xsl:call-template> </xsl:for-each> </xsl:template> <xsl:template name="rem-html"> <xsl:param …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.