日常工作中,我們經(jīng)常需要對(duì)一批文件進(jìn)行重命名操作,例如將所有的jpg文件改成bnp,將名字中的1改成one,等等。
處理大量文件的時(shí)候該如何進(jìn)行批量修改呢?在 Linux 環(huán)境下,我們可以簡(jiǎn)單敲一些代碼就可以完成這個(gè)需求。比如以下三種方法:
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)行批量修改:
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的其他用法還有很多,我們就不一一介紹了。
當(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)單介紹:
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);
現(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) { /* ... */ }
}
新版本定義和初始化屬性所用的樣板代碼更少。
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,
) {}
}
Union Types 支持接收多個(gè)不同類(lèi)型的值,而不是單個(gè)類(lèi)型。目前PHP已經(jīng)支持兩種特殊的聯(lián)合類(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很像switch,并具有以下特性:
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
現(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;
使用==和其他非嚴(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
在新版本中,如果參數(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
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)
要下載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ù),都可以從中受益匪淺。
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。