【问题标题】:Adding a character string to every line in a file, incrementing that character string added by 1 each file将字符串添加到文件中的每一行,每个文件中添加的字符串加 1
【发布时间】:2014-09-09 14:12:04
【问题描述】:

我有一些带有字符串的文件集,因此有一个文件夹包含

file1
file2
file3

在这些文件中有一个可变长度的字符串列表,以便文件 1 可以读取

file1.itemA
file1.itemB
file1.itemC

虽然文件 2 可能只包含

file2.itemA
file2.itemB

我想在每个文件中的每一行添加一个文件特定的代码,这样

code1.file1.itemA
code1.file1.itemB
code1.file1.itemC

code2.file2.itemA
code2.file2.itemB

如何在 unix 中做到这一点?我正在使用 OSX 终端执行命令。

【问题讨论】:

    标签: macos unix qiime


    【解决方案1】:

    我不在要测试的终端附近,但是,怎么样:

    cd /path/to/your/files
    word='code'
    base=1
    for file in *; do sed -i -e "s/^/$word$base/" "${file}"; base=$(( $base + 1 )); done
    

    $word 变量是您想要的常量。 $base 变量保存在每个文件上递增的计数,最初设置为 1。

    【讨论】:

    • 明白了。你能澄清一下 - 如果文件名不是简单的 file1、file2 等,而是 'file01_rep01_other.meaningless.stuff.fastq' 'file02_rep02_other.meaningless.stuff.fastq'
    • 应该没问题。文件名不用于计算要添加的代码,sed 的文件名参数被正确引用。如果您收到特定错误,请发布特定错误和尽可能多的实际文件。
    猜你喜欢
    • 1970-01-01
    • 2017-04-10
    • 2017-07-14
    • 2017-02-07
    • 2019-09-20
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多