整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢(xún)熱線(xiàn):

          三種快速搞定Linux文件批量重命名的方法

          三種快速搞定Linux文件批量重命名的方法

          日常工作中,我們經(jīng)常需要對(duì)一批文件進(jìn)行重命名操作,例如將所有的jpg文件改成bnp,將名字中的1改成one,等等。



          處理大量文件的時(shí)候該如何進(jìn)行批量修改呢?在 Linux 環(huán)境下,我們可以簡(jiǎn)單敲一些代碼就可以完成這個(gè)需求。比如以下三種方法:


          方法一:mv配合for循環(huán)方式進(jìn)行修改


          mv命令既可以重命名,又可以移動(dòng)文件或文件夾。但是實(shí)際應(yīng)用中,它只能對(duì)單個(gè)文件重命名。


          例如:


          mv A B #將目錄A重命名為B


          mv /a /b/c #將/a目錄移動(dòng)到/b下,并重命名為c


          mv配合for循環(huán)方式進(jìn)行批量修改:



          方法二:sed命令


          Linux sed命令是利用script來(lái)處理文本文件。sed可依照script的指令,來(lái)自動(dòng)編輯一個(gè)或多個(gè)文件;簡(jiǎn)化對(duì)文件的反復(fù)操作;編寫(xiě)轉(zhuǎn)換程序等。


          使用sed命令批量替換文件內(nèi)容時(shí),格式如下:



          例如:

          把/test下所有包含abc的文件中的abc替換為def,執(zhí)行命令



          sed的其他用法還有很多,我們就不一一介紹了。


          方法三:rename命令


          當(dāng)你想要重命名多個(gè)文件的時(shí)候,rename 工具或許是最簡(jiǎn)單、最安全和最強(qiáng)大的命令行工具。


          代碼如下:



          ●<pcre> 是Perl兼容正則表達(dá)式,它表示的是要重命名的文件和該怎么做。正則表達(dá)式的形式是‘s/old-name/new-name/’。

          ●‘-v’選項(xiàng)會(huì)顯示文件名改變的細(xì)節(jié)(比如:XXX重命名成YYY)。

          ●‘-n’選項(xiàng)告訴rename命令在不實(shí)際改變名稱(chēng)的情況下顯示文件將會(huì)重命名的情況。這個(gè)選項(xiàng)在你想要在不改變文件名的情況下模擬改變文件名的情況下很有用。

          ●‘-f’選項(xiàng)強(qiáng)制覆蓋存在的文件。


          例如:


          字母的替換

          rename "s/AA/aa/" #把文件名中的AA替換成aa

          修改文件的后綴

          rename "s/.html/.php/" #把.html 后綴的改成 .php后綴

          批量添加文件后綴

          rename "s/$/.txt/" #把所有的文件名都以txt結(jié)尾

          批量刪除文件名

          rename "s/.txt//" #把所有以.txt結(jié)尾的文件名的.txt刪掉


          以上,就是我們教給大家的三種在Linux下文件批量重命名的方法,你學(xué)會(huì)了嗎?

          國(guó)時(shí)間11月26日,PHP團(tuán)隊(duì)宣布PHP 8.0正式GA。PHP 8.0是PHP語(yǔ)言的最新主要版本,帶來(lái)了許多新特性和優(yōu)化,包括命名參數(shù)(named arguments)、聯(lián)合類(lèi)型(union types)、屬性(attributes)、構(gòu)造器屬性提升(constructor property promotion)、Match表達(dá)式、nullsafe運(yùn)算符、JIT,以及針對(duì)類(lèi)型系統(tǒng)、錯(cuò)誤處理和一致性的諸多改進(jìn)。

          PHP 8.0.0 下載地址:

          https://www.php.net/downloads

          下文將對(duì)新版本的重要亮點(diǎn)做簡(jiǎn)單介紹:

          命名參數(shù)

          https://wiki.php.net/rfc/named_params

          PHP 7

          htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, 'UTF-8', false);

          PHP 8

          htmlspecialchars($string, double_encode: false);
          • 僅指定必需參數(shù),跳過(guò)可選參數(shù)。
          • 參數(shù)與順序無(wú)關(guān),且是自描述的。

          屬性

          現(xiàn)在,開(kāi)發(fā)者可以使用基于PHP原生語(yǔ)法的結(jié)構(gòu)化元數(shù)據(jù)來(lái)代替PHPDoc注解。

          https://wiki.php.net/rfc/attributes_v2

          PHP 7

          class PostsController
          {
            /**
             * @Route("/api/posts/{id}", methods={"GET"})
             */
            public function get($id) { /* ... */ }
          }

          PHP 8

          class PostsController
          {
            #[Route("/api/posts/{id}", methods: ["GET"])]
            public function get($id) { /* ... */ }
          }

          構(gòu)造器屬性提升

          新版本定義和初始化屬性所用的樣板代碼更少。

          https://wiki.php.net/rfc/constructor_promotion

          PHP 7

          class Point {
            public float $x;
            public float $y;
            public float $z;
          
          
            public function __construct(
             float $x=0.0,
             float $y=0.0,
             float $z=0.0,
            ) {
             $this->x=$x;
             $this->y=$y;
             $this->z=$z;
           }
          }

          PHP 8

          class Point {
            public function __construct(
             public float $x=0.0,
             public float $y=0.0,
             public float $z=0.0,
           ) {}
          }

          聯(lián)合類(lèi)型(Union Types)

          Union Types 支持接收多個(gè)不同類(lèi)型的值,而不是單個(gè)類(lèi)型。目前PHP已經(jīng)支持兩種特殊的聯(lián)合類(lèi)型:

          • Type或null,使用特殊?Type語(yǔ)法。
          • array或Traversable,使用特殊iterable類(lèi)型。

          對(duì)于類(lèi)型組合,可以使用在運(yùn)行時(shí)經(jīng)過(guò)驗(yàn)證的原生聯(lián)合類(lèi)型聲明來(lái)代替PHPDoc注解。

          https://wiki.php.net/rfc/union_types_v2

          支持聯(lián)合類(lèi)型之后,將會(huì)允許將更多類(lèi)型信息從 phpdoc 遷移至函數(shù)簽名。可以說(shuō),泛型之后,聯(lián)合類(lèi)型是目前類(lèi)型聲明系統(tǒng)中最大的突破口。

          PHP 7

          class Number {
            /** @var int|float */
            private $number;
          
          
            /**
             * @param float|int $number
             */
            public function __construct($number) {
             $this->number=$number;
           }
          }
          
          
          new Number('NaN'); // O

          PHP 8

          class Number {
            public function __construct(
             private int|float $number
            ) {}
          }
          
          
          new Number('NaN'); // TypeError

          Match表達(dá)式

          新的match很像switch,并具有以下特性:

          • Match是一個(gè)表達(dá)式,表示其結(jié)果可以存儲(chǔ)在變量中或返回。
          • Match分支僅支持單行表達(dá)式,不需要break; 語(yǔ)句。
          • Match執(zhí)行嚴(yán)格比較。

          https://wiki.php.net/rfc/match_expression_v2

          PHP 7

          switch (8.0) {
            case '8.0':
             $result="Oh no!";
             break;
            case 8.0:
             $result="This is what I expected";
             break;
          }
          echo $result;
          //> Oh no!

          PHP 8

          echo match (8.0) {
            '8.0'=> "Oh no!",
            8.0=> "This is what I expected",
          };
          //> This is what I expected

          Nullsafe運(yùn)算符

          現(xiàn)在,開(kāi)發(fā)者可以使用帶有新的nullsafe運(yùn)算符的調(diào)用鏈來(lái)代替null check。當(dāng)對(duì)鏈中一個(gè)元素的求值失敗時(shí),整個(gè)鏈的執(zhí)行將中止,并且整個(gè)鏈的求值為null。

          https://wiki.php.net/rfc/nullsafe_operator

          PHP 7

          $country=null;
          
          
          if ($session !==null) {
            $user=$session->user;
          
          
           if ($user !==null) {
             $address=$user->getAddress();
          
          
            if ($address !==null) {
              $country=$address->country;
            }
           }

          PHP 8

          $country=$session?->user?->getAddress()?->country;

          字符串與數(shù)字的判斷更合理

          使用==和其他非嚴(yán)格比較運(yùn)算符對(duì)字符串和數(shù)字之間做比較時(shí),原本的做法是將字符串強(qiáng)制轉(zhuǎn)換為數(shù)字,然后對(duì)整數(shù)或浮點(diǎn)數(shù)進(jìn)行比較。這會(huì)導(dǎo)致許多令人驚訝的比較結(jié)果,其中最值得注意的是 0=="foobar" 返回true。

          在新版本中,僅在字符串實(shí)際為數(shù)字時(shí)才使用數(shù)字比較,否則將數(shù)字轉(zhuǎn)換為字符串,并執(zhí)行字符串比較。

          https://wiki.php.net/rfc/string_to_number_comparison

          PHP 7

          0=='foobar' // true

          PHP 8

          0=='foobar' // false

          內(nèi)部函數(shù)的類(lèi)型錯(cuò)誤一致

          在新版本中,如果參數(shù)驗(yàn)證失敗,大多數(shù)內(nèi)部函數(shù)將拋出Error異常。

          https://wiki.php.net/rfc/consistent_type_errors

          PHP 7

          strlen([]); // Warning: strlen() expects parameter 1 to be string, array given
          
          
          array_chunk([], -1); // Warning: array_chunk(): Size parameter expected to be greater than 0

          PHP 8

          strlen([]); // TypeError: strlen(): Argument #1 ($str) must be of type string, array given
          
          
          array_chunk([], -1); // ValueError: array_chunk(): Argument #2 ($length) must be greater than 0

          JIT編譯

          PHP 8引入了兩個(gè)JIT編譯引擎。Tracing JIT的表現(xiàn)最出色,它在綜合基準(zhǔn)測(cè)試中的性能提高到大約3倍,在某些特定的傳統(tǒng)應(yīng)用程序中提高到1.5–2倍。典型的應(yīng)用程序性能與PHP 7.4相當(dāng)。

          JIT對(duì)PHP 8性能的貢獻(xiàn)

          類(lèi)型系統(tǒng)和錯(cuò)誤處理方面的改進(jìn)

          • 對(duì)算術(shù)/按位運(yùn)算符進(jìn)行更嚴(yán)格的類(lèi)型檢查(https://wiki.php.net/rfc/arithmetic_operator_type_checks)
          • 抽象特征方法驗(yàn)證(https://wiki.php.net/rfc/abstract_trait_method_validation)
          • 魔術(shù)方法的正確簽名(https://wiki.php.net/rfc/magic-methods-signature)
          • 重分類(lèi)引擎警告(https://wiki.php.net/rfc/engine_warnings)
          • 不兼容方法簽名的致命錯(cuò)誤(https://wiki.php.net/rfc/lsp_errors)
          • @運(yùn)算符不再使致命錯(cuò)誤靜默。
          • 用私有方法繼承(https://wiki.php.net/rfc/inheritance_private_methods)
          • 混合類(lèi)型(https://wiki.php.net/rfc/mixed_type_v2)
          • 靜態(tài)返回類(lèi)型(https://wiki.php.net/rfc/static_return_type)
          • 內(nèi)部函數(shù)類(lèi)型(https://externals.io/message/106522)
          • 不透明的對(duì)象代替Curl、Gd、Sockets、OpenSSL、XMLWriter和XML擴(kuò)展的資源

          其他語(yǔ)法調(diào)整和改進(jìn)

          • 在參數(shù)列表(https://wiki.php.net/rfc/trailing_comma_in_parameter_list)和使用閉包的列表(https://wiki.php.net/rfc/trailing_comma_in_closure_use_list)中允許結(jié)尾逗號(hào)
          • non-capturing捕獲(https://wiki.php.net/rfc/non-capturing_catches)
          • 變量語(yǔ)法調(diào)整(https://wiki.php.net/rfc/variable_syntax_tweaks)
          • 將命名空間名稱(chēng)視為單個(gè)令牌(https://wiki.php.net/rfc/namespaced_names_as_token)
          • Throw現(xiàn)在是表達(dá)式(https://wiki.php.net/rfc/throw_expression)
          • 在對(duì)象上允許::class(https://wiki.php.net/rfc/class_name_literal_on_object)

          新的類(lèi)、接口和函數(shù)

          • Weak Map類(lèi)(https://wiki.php.net/rfc/weak_maps)
          • Stringable接口(https://wiki.php.net/rfc/stringable)
          • str_contains()、str_starts_with()、str_ends_with()(https://wiki.php.net/rfc/str_contains)
          • fdiv()(https://github.com/php/php-src/pull/4769)
          • get_debug_type()(https://wiki.php.net/rfc/get_debug_type)
          • get_resource_id()(https://github.com/php/php-src/pull/54270
          • token_get_all()對(duì)象實(shí)現(xiàn)(https://wiki.php.net/rfc/token_as_object)

          下載

          要下載PHP 8的源代碼,請(qǐng)?jiān)L問(wèn)下載頁(yè)面(https://www.php.net/downloads)。Windows二進(jìn)制文件位于Windows版PHP網(wǎng)站(http://windows.php.net/download)。更改列表位于ChangeLog(http://www.php.net/ChangeLog-8.php)。

          PHP手冊(cè)中提供了遷移指南(https://www.php.net/manual/en/migration80.php)。請(qǐng)查閱它以獲取新特性細(xì)節(jié)和向后不兼容更改的詳細(xì)列表。

          原文鏈接:https://www.php.net/releases/8.0/en.php

          延伸閱讀:

          PHP與.NET統(tǒng)治Web開(kāi)發(fā)世界的八個(gè)理由-InfoQ

          關(guān)注我并轉(zhuǎn)發(fā)此篇文章,私信我“領(lǐng)取資料”,即可免費(fèi)獲得InfoQ價(jià)值4999元迷你書(shū),點(diǎn)擊文末「了解更多」,即可移步InfoQ官網(wǎng),獲取最新資訊~

          日常生活和工作中,我們經(jīng)常需要處理大量的文本數(shù)據(jù),如何高效地進(jìn)行文本批量操作成為了一個(gè)重要的需求。首助編輯高手軟件作為一款專(zhuān)業(yè)的文本編輯工具,其強(qiáng)大的文本批量操作功能可以大大提高我們的工作效率。

          一、用戶(hù)友好的界面和操作體驗(yàn):擁有簡(jiǎn)潔、直觀的用戶(hù)界面和操作體驗(yàn),使得用戶(hù)可以輕松上手。無(wú)論是初學(xué)者還是專(zhuān)業(yè)用戶(hù),都可以通過(guò)簡(jiǎn)單的點(diǎn)擊操作完成文本批量操作。這一設(shè)計(jì)使得用戶(hù)可以更加專(zhuān)注于文本編輯本身,而不會(huì)被復(fù)雜的軟件操作所困擾。

          二、多種文件的添加方式:支持以添加文件、添加單個(gè)文件夾中的文件、添加多個(gè)文件夾中的文件等方式導(dǎo)入素材

          三、支持多種文本格式:廣泛的應(yīng)用場(chǎng)景:支持多種文本格式,比如asp、php、jsp、html等格式

          四、文本批量操作功能:實(shí)現(xiàn)高效編輯:軟件的文本批量操作功能,可以幫助用戶(hù)快速、準(zhǔn)確地添加大量文本內(nèi)容。無(wú)論是添加相同的文本、替換文本,還是合并或拆分文本,都可以通過(guò)簡(jiǎn)單的設(shè)置和操作實(shí)現(xiàn)。這一功能使得用戶(hù)可以告別繁瑣的手動(dòng)復(fù)制和粘貼操作,極大地提高了文本編輯的效率和準(zhǔn)確性。

          五、強(qiáng)大的添加內(nèi)容選項(xiàng),省時(shí)省事省力:支持對(duì)大量文本文檔內(nèi)容進(jìn)行添加,添加的文字可以自行輸入,添加的位置可以自行選擇,也可以插入編號(hào),非常方便,能節(jié)省不少時(shí)間。

          六、更多附加功能,任你選擇:支持AI文章創(chuàng)作、圖片批量操作、長(zhǎng)圖拼接切圖等強(qiáng)大功能。

          七、總結(jié):提高工作效率的利器:綜上所述,軟件的文本批量操作功能支持TXT文本內(nèi)容批量添加,使得用戶(hù)可以更加高效地進(jìn)行文本編輯和處理。通過(guò)簡(jiǎn)潔直觀的用戶(hù)界面和操作體驗(yàn),首助編輯高手軟件成為了提高工作效率的利器。無(wú)論是個(gè)人用戶(hù)還是企業(yè)用戶(hù),都可以從中受益匪淺。


          主站蜘蛛池模板: 综合人妻久久一区二区精品| 日韩在线一区二区三区免费视频| 在线|一区二区三区四区| 97精品国产福利一区二区三区| 国产一区三区二区中文在线| chinese国产一区二区| 搜日本一区二区三区免费高清视频| 国产一区二区三区亚洲综合| 亚洲欧美日韩一区二区三区| 一区二区三区91| 国产精品毛片VA一区二区三区| 国产福利日本一区二区三区| 久久精品视频一区二区三区| 日韩一区二区三区精品| 亚洲一区中文字幕在线电影网| 在线日韩麻豆一区| 久久久无码精品国产一区 | 人妻少妇久久中文字幕一区二区| 一本AV高清一区二区三区| 精品永久久福利一区二区| 麻豆AV一区二区三区| 久久无码一区二区三区少妇| www一区二区三区| 久久国产精品一区二区| 中文无码精品一区二区三区| 国产丝袜一区二区三区在线观看 | 奇米精品视频一区二区三区| 性色A码一区二区三区天美传媒| 中文字幕精品一区二区| 一区免费在线观看| 国产精品盗摄一区二区在线| 一区一区三区产品乱码| 国产在线不卡一区二区三区| 香蕉视频一区二区三区| 寂寞一区在线观看| 韩国美女vip福利一区| 无码人妻精品一区二区三区不卡 | 精品人妻AV一区二区三区| 色噜噜狠狠一区二区三区果冻| 无码人妻精品一区二区三| 亚洲蜜芽在线精品一区|