Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 正则表达式集合中的sed或运算符_Linux_Bash_Sed - Fatal编程技术网

Linux 正则表达式集合中的sed或运算符

Linux 正则表达式集合中的sed或运算符,linux,bash,sed,Linux,Bash,Sed,我编写的bash脚本应该修改我的文本文件。问题是操作的速度。我要修改的每个文件有4行 这是我的bash脚本,用于修改给定文件夹中的所有.txt文件: srcdir="$1" //source directory cpr=$2 //given string argument find $srcdir -name "*.txt" | while read i; do echo "#############################" echo "$i" echo "

我编写的bash脚本应该修改我的文本文件。问题是操作的速度。我要修改的每个文件有4行

这是我的bash脚本,用于修改给定文件夹中的所有.txt文件:

srcdir="$1" //source directory
cpr=$2 //given string argument 

find $srcdir -name "*.txt" | while read i; do
    echo "#############################"
    echo "$i"
    echo "Custom string: $cpr"
    echo "#############################"

    # remove document name and title
    sed -i 's_document=.*\/[0-9]\{10\}\(, User=team\)\?__g' $i

    # remove document date
    sed -i 's|document date , [0-9]\{2\}\/[0-9]\{2\}\/[0-9]\{4\} [0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\} MDT||g' $i

    # remove document id
    sed -i 's|document id = 878h67||g' $i

    # replace new producer
    sed_arg="-i 's|Reproduced by $cpr|john smith|g' $i"
    eval sed "$sed_arg"

done
我不知道如何将我所有的sed命令集中在一个或两个命令中,所以我认为这项工作会做得更快

我尝试过正则表达式的OR操作符,但没有成功

你试过了吗

sed -i -e 's/pattern/replacement/g' -e 's/pattern1/replace1/g' file
你试过了吗

sed -i -e 's/pattern/replacement/g' -e 's/pattern1/replace1/g' file

谢谢,但是像你说的那样添加$cpr会带来错误,这不是我的问题。再次感谢。谢谢你,但是像你说的那样添加$cpr会出现错误,这不是我的问题。再次感谢。谢谢你的方法。我不知道这件事谢谢你的方法。我不知道这件事