如何在这一行使用“wc -l”?计算shell脚本中的行数并仅输出计数值

如何在这一行使用“wc -l”?计算shell脚本中的行数并仅输出计数值
#!/bin/bash

/abc/qwerty/AAAooo/testing/CBA_Car/Config/Test_Ctr.env

OUTPUT_FILE_NAME=$1
DATE=$2

cp /abc/section/AAAooo/CBACenter/slack_2010-05-1.txt ${OUTPUT_FILE_NAME}

如何在此脚本中执行计数并仅输出计数?不知何故,我需要能够计算这个 shell 脚本中的行数并输出计数值。我想我可能需要做这样的事情:

cat filename.txt | wc -l

但是,我不确定如何正确输入它以便语法正常工作。它一直给我一个错误。计数需要在这一行完成:

cp /abc/section/AAAooo/CBACenter/slack_2010-05-1.txt ${OUTPUT_FILE_NAME}

答案1

cp(通常)不输出任何内容。如果您使用cp -v,它将输出正在复制的每个文件的名称,但不输出其内容。

类 UNIX 环境通常非常擅长使用能够精确完成一项工作的工具,并且做得很好。计算文件中的行数( 的工作wc)不属于将文件从一个位置复制到另一个位置(例如 )的工具的范围cp

如果您想计算文件中的行数并复制它,则需要分别执行这两个单独的任务。

$ cp /old/path/to/file /new/path/to/file
$ filelength="$( wc -l < /path/to/file )"

答案2

你可以通过下面的方法来做到

#!/bin/bash
cp $1 $2
wc -l $2

上面的脚本将 $1(file1) 内容复制到 $2(file2) ,然后复制到第二个文件。它将打印 file2 中的行数

我们应该执行如下脚本

sh scriptname file1 file2

$1=file1
$2=file2

相关内容